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

所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"
首页 新闻资讯 行业资讯 浅谈JAVA中如何利用socket进行网络编程(二)

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

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

复制

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;   }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

复制

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){   }  }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

复制

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();   }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

 

复制

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

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

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

【编辑推荐】

  1. JAVA语言关于字符串替换的思考

  2. JAVA语言中关于EJB技术概论

  3. java/.net语言及IDE简易对比

  4. java中的类和方法的修饰符

  5. Java编程语言基础JSP基本语法的详细介绍

39    2011-06-13 12:11:06    java socket