知识大全 java网络通信小程序

Posted 文件

篇首语:生也有涯,知也无涯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java网络通信小程序相关的知识,希望对你有一定的参考价值。

  //ChatServer java文件

  import java io *;

  import *;

  import java util *;

  public class ChatServer

  boolean started = false;

  ServerSocket ss = null;

  List<Client> clients = new ArrayList<Client>();

  public static void main(String[] args)

  new ChatServer() start();

  

  public void start()

  try

  ss = new ServerSocket( );

  started = true;

   catch (BindException e)

  System out println( 端口使用中 );

  System out println( 请关掉相关程序并重新运行服务器! );

  System exit( );

   catch (IOException e)

  e printStackTrace();

  

  try

  while(started)

  Socket s = ss accept();

  Client c = new Client(s);

  System out println( a client connected! );

  new Thread(c) start();

  clients add(c);

  //dis close();

  

   catch (IOException e)

  e printStackTrace();

   finally

  try

  ss close();

   catch (IOException e)

  // TODO Auto generated catch block

  e printStackTrace();

  

  

  

  class Client implements Runnable

  private Socket s;

  private DataInputStream dis = null;

  private DataOutputStream dos = null;

  private boolean bConnected = false;

  public Client(Socket s)

  this s = s;

  try

  dis = new DataInputStream(s getInputStream());

  dos = new DataOutputStream(s getOutputStream());

  bConnected = true;

   catch (IOException e)

  e printStackTrace();

  

  

  public void send(String str)

  try

  dos writeUTF(str);

   catch (IOException e)

  clients remove(this);

  System out println( 对方退出了!我从List里面去掉了! );

  //e printStackTrace();

  

  

  public void run()

  try

  while(bConnected)

  String str = dis readUTF();

  System out println(str);

  for(int i= ; i<clients size(); i++)

  Client c = clients get(i);

  c send(str);

  //System out println( a string send ! );

  

  /*

  for(Iterator<Client> it = erator(); it hasNext(); )

  Client c = it next();

  c send(str);

  

  */

  /*

  Iterator<Client> it = erator();

  while(it hasNext())

  Client c = it next();

  c send(str);

  

  */

  

   catch (EOFException e)

  System out println( Client closed! );

   catch (IOException e)

  e printStackTrace();

   finally

  try

  if(dis != null) dis close();

  if(dos != null) dos close();

  if(s != null)

  s close();

  //s = null;

  

   catch (IOException e )

  e printStackTrace();

  

  

  

  

  

  //ChatClient java文件

  import java awt *;

  import java awt event *;

  import java io *;

  import *;

  public class ChatClient extends Frame

  Socket s = null;

  DataOutputStream dos = null;

  DataInputStream dis = null;

  private boolean bConnected = false;

  TextField tfTxt = new TextField();

  TextArea taContent = new TextArea();

  Thread tRecv = new Thread(new RecvThread());

  public static void main(String[] args)

  new ChatClient() launchFrame();

  

  public void launchFrame()

  setLocation( );

  this setSize( );

  add(tfTxt BorderLayout SOUTH);

  add(taContent BorderLayout NORTH);

  pack();

  this addWindowListener(new WindowAdapter()

  @Override

  public void windowClosing(WindowEvent arg )

  disconnect();

  System exit( );

  

  );

  tfTxt addActionListener(new TFListener());

  setVisible(true);

  connect();

  tRecv start();

  

  public void connect()

  try

  s = new Socket( );

  dos = new DataOutputStream(s getOutputStream());

  dis = new DataInputStream(s getInputStream());

  System out println( connected! );

  bConnected = true;

   catch (UnknownHostException e)

  e printStackTrace();

   catch (IOException e)

  e printStackTrace();

  

  

  public void disconnect()

  try

  dos close();

  dis close();

  s close();

   catch (IOException e)

  e printStackTrace();

  

  /*

  try

  bConnected = false;

  tRecv join();

   catch(InterruptedException e)

  e printStackTrace();

   finally

  try

  dos close();

  dis close();

  s close();

   catch (IOException e)

  e printStackTrace();

  

  

  */

  

  private class TFListener implements ActionListener

  public void actionPerformed(ActionEvent e)

  String str = tfTxt getText() trim();

  //taContent setText(str);

  tfTxt setText( );

  try

  //System out println(s);

  dos writeUTF(str);

  dos flush();

  //dos close();

   catch (IOException e )

  e printStackTrace();

  

  

  

  private class RecvThread implements Runnable

  public void run()

  try

  while(bConnected)

  String str = dis readUTF();

  //System out println(str);

  taContent setText(taContent getText() + str + \\n );

  

   catch (SocketException e)

  System out println( 退出了 bye! );

   catch (EOFException e)

  System out println( 推出了 bye bye! );

   catch (IOException e)

  e printStackTrace();

  

  

  

cha138/Article/program/Java/hx/201311/25933

相关参考

知识大全 使用 Java 编写 B/S 网络通信程序

使用Java编写B/S网络通信程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    网络上的系

知识大全 使用Java编写B/S网络通信程序

使用Java编写B/S网络通信程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!网络上的系统结构多

知识大全 网络数据流的java处理

  郭洪锋()该文章对编写客户服务器应用的java程序员有所帮助可以解决程序在对方出现故障的时候继续稳定运行  前言java程序要处理很多的网络数据网络数据发送和接收以及数据流的处理是java程序要特

知识大全 Java Socket 编程——多线程网络聊天程序

JavaSocket编程——多线程网络聊天程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用

知识大全 使用Java开发兼容IPv6的网络应用程序

使用Java开发兼容IPv6的网络应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    I

知识大全 用Solstice Enterprise Manager建立Java网络管理应用程序

用SolsticeEnterpriseManager建立Java网络管理应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容

知识大全 Java应用程序和小应用程序

Java应用程序和小应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java程序可以是独

知识大全 几段实用小JAVA程序

几段实用小JAVA程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!你的主页有JAVA语句吗?JA

知识大全 ajax入门小程序

  此小程序主要给ajax还未入门的朋友们一个简单的演示程序的主要内容就是将页面部分的id通过表单传到java的servlet中因为只是做示例所以没有对id进行任何处理有兴趣的朋友可以连接数据库或应用

知识大全 关于java中的对象序列化

  java对象序列化机制一般来讲有两种用途      需要将对象的状态保存到文件中而后能够通过读入对象状态来重新构造对象恢复程序状态      使用套接字在网络上传送对象的程序来说是很有用的