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

来源:互联网 发布:剑三成男痞气捏脸数据 编辑:程序博客网 时间:2024/05/16 09:45

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网络编程就给大家介绍完啦!希望对大家有帮助。

0 0