浅谈JAVA中如何利用socket进行网络编程(二)
Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上的数据的传递。在java中,有专门的socket类来处理用户的请求和响应。利用SOCKET类的方法,就可以实现两台计算机之间的通讯。这里就介绍一下在JAVA中如何利用socket进行网络编程。点击打开链接
在上一篇中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码。
- importjava.net.*;
- importjava.io.*;
- importjava.awt.event.ActionEvent;
- importjava.awt.event.ActionListener;
- publicclasstalkServer
- {publicstaticvoidmain(String[]args)
- {try
- {file://建立服务器
- ServerSocketserver=newServerSocket(9998);
- inti=1;
- for(;;)
- {Socketincoming=server.accept();
- newServerThread(incoming,i).start();
- i++;
- }
- }catch(IOExceptionex){
- ex.printStackTrace();
- }
- }
- }
- classServerThreadextendsThreadimplementsActionListener
- {
- privateintthreadNum;
- privateSocketsocket;
- talkServerFrmt;
- BufferedReaderin;
- PrintWriterout;
- privatebooleantalking=true;
- publicServerThread(Sockets,intc)
- {threadNum=c;
- socket=s;
- }
- publicvoidactionPerformed(ActionEvente)
- {Objectsource=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(IOExceptionex){
- }
- }
- publicvoidrun()
- {try{
- t=newtalkServerFrm(newInteger(threadNum).toString(),this);
- t.setSize(500,500);
- t.show();
- in=newBufferedReader(new
- InputStreamReader(socket.getInputStream()));
- out=newPrintWriter(socket.getOutputStream(),true);
- }catch(Exceptione){
- }
- newThread()
- {publicvoidrun()
- {try{
- while(true)
- {checkInput();
- sleep(1000);
- }
- }catch(InterruptedExceptionex){
- }catch(IOExceptionex){
- }
- }
- }.start();
- while(talking)
- {}
- t.dispose();
- }
- privatevoidcheckInput()throwsIOException
- {Stringline;
- if((line=in.readLine())!=null)
- t.setPartner(line);file://这是界面类里的方法,
- file://用来将line的内容输出到用户界面
- }
- }
到此,java中的socket网络编程就给大家介绍完啦!希望对大家有帮助。