转自:http://developer.51cto.com/art/201106/268386.htm
Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上的数据的传递。在java中,有专门的socket类来处理用户的请求和响应。利用SOCKET类的方法,就可以实现两台计算机之间的通讯。这里就介绍一下在JAVA中如何利用socket进行网络编程。
接第一篇浅谈JAVA中如何利用socket进行网络编程(一)
在上一篇中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码。
1 import java.net.*; 2 import java.io.*; 3 import java.awt.event.ActionEvent; 4 import java.awt.event.ActionListener; 5 public class talkServer 6 { public static void main(String[] args) 7 { try 8 { file://建立服务器 9 ServerSocket server = new ServerSocket(9998); 10 int i=1; 11 for(;;) 12 { Socket incoming = server.accept(); 13 new ServerThread(incoming,i).start(); 14 i++; 15 } 16 }catch (IOException ex){ 17 ex.printStackTrace(); 18 } 19 } 20 }
1 class ServerThread extends Thread implements ActionListener 2 { 3 private int threadNum; 4 private Socket socket; 5 talkServerFrm t; 6 BufferedReader in; 7 PrintWriter out; 8 private boolean talking=true; 9 public ServerThread(Socket s,int c) 10 { threadNum = c; 11 socket = s; 12 } 13 14 public void actionPerformed(ActionEvent e) 15 { Object source = e.getSource(); 16 try{ 17 if(source==t.btnSend) 18 { out.println(t.getTalk()); 19 t.clearTalk(); 20 }else 21 if(source==t.btnEnd) 22 { out.println("谈话过程被对方终止"); 23 out.close(); 24 in.close(); 25 talking = false; 26 } 27 }catch(IOException ex){ 28 } 29 } 30 31 public void run() 32 { try{ 33 t=new talkServerFrm(new Integer(threadNum).toString(),this); 34 t.setSize(500,500); 35 t.show(); 36 in = new BufferedReader(new 37 InputStreamReader(socket.getInputStream())); 38 out = new PrintWriter(socket.getOutputStream(),true); 39 }catch(Exception e){ 40 } 41 new Thread() 42 { public void run() 43 { try{ 44 while(true) 45 { checkInput(); 46 sleep(1000); 47 } 48 }catch (InterruptedException ex){ 49 }catch(IOException ex){ 50 } 51 } 52 }.start(); 53 while(talking) 54 { } 55 t.dispose(); 56 } 57 58 private void checkInput() throws IOException 59 { String line; 60 if((line=in.readLine())!=null) 61 t.setPartner(line); file://这是界面类里的方法, 62 file://用来将line的内容输出到用户界面 63 } 64 }
到此,java中的socket网络编程就给大家介绍完啦!希望对大家有帮助。