浅谈JAVA中如何利用socket进行网络编程(二)

来源:互联网 发布:剑网三捏脸萝莉数据 编辑:程序博客网 时间:2024/06/01 09:24

Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上的数据的传递。在java中,有专门的socket类来处理用户的请求和响应。利用SOCKET类的方法,就可以实现两台计算机之间的通讯。这里就介绍一下在JAVA中如何利用socket进行网络编程。

在上一篇中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码。

import java.net.*;  import java.io.*;  import java.awt.event.ActionEvent;  import java.awt.event.ActionListener;  public class talkServer  { public static void main(String[] args)   { try { file://建立服务器   ServerSocket server = new ServerSocket(9998);   int i=1;   for(;;)  { Socket incoming = server.accept();   new ServerThread(incoming,i).start();   i++;  }   }catch (IOException ex){   ex.printStackTrace();  }   }  } 

class ServerThread extends Thread implements ActionListener  {   private int threadNum;   private Socket socket;   talkServerFrm t;   BufferedReader in;   PrintWriter out;   private boolean talking=true;   public ServerThread(Socket s,int c)   { threadNum = c;  socket = s;   } 
public void actionPerformed(ActionEvent e)  { Object source = e.getSource();   try{  if(source==t.btnSend)   { out.println(t.getTalk());  t.clearTalk();  }else if(source==t.btnEnd)   { out.println("谈话过程被对方终止");  out.close();  in.close();  talking = false;   }   }catch(IOException ex){   }  } 

public void run()  { try{  t=new talkServerFrm(new Integer(threadNum).toString(),this);  t.setSize(500,500);  t.show();  in = new BufferedReader(new     InputStreamReader(socket.getInputStream()));  out = new PrintWriter(socket.getOutputStream(),true);   }catch(Exception e){  }   new Thread()   { public void run()  { try{  while(true)  { checkInput();   sleep(1000);  }   }catch (InterruptedException ex){   }catch(IOException ex){   }   }   }.start();   while(talking)   { }   t.dispose();   } 

private void checkInput() throws IOException  { String line;   if((line=in.readLine())!=null)  t.setPartner(line); file://这是界面类里的方法,  file://用来将line的内容输出到用户界面   }  }  

到此,java中的socket网络编程就给大家介绍完啦!希望对大家有帮助。



转载地址:http://developer.51cto.com/art/201106/268386.htm

原创粉丝点击