Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上的数据的传递。在java中,有专门的socket类来处理用户的请求和响应。利用SOCKET类的方法,就可以实现两台计算机之间的通讯。这里就介绍一下在JAVA中如何利用socket进行网络编程。
接第一篇浅谈Java中如何利用socket进行网络编程(一)
在上一篇中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码。
- import.*; 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(); }elseif(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网络编程就给大家介绍完啦!希望对大家有帮助。
相关链接:
浅谈Java中如何利用socket进行网络编程(一)
十七岁怎么会有七十岁的忧伤,十八岁怎么会有八十岁的等待。