Java开发实现的Socket双向通信功能示例
本文实例讲述了Java开发实现的Socket双向通信功能。分享给大家供大家参考,具体如下:
服务端
importjava.io.BufferedReader; importjava.io.BufferedWriter; importjava.io.IOException; importjava.io.InputStreamReader; importjava.io.OutputStreamWriter; importjava.net.ServerSocket; importjava.net.Socket; importjava.util.Scanner; publicclassServer_1{ publicstaticvoidmain(String[]args){ InputStreamReaderisr; BufferedReaderbr; OutputStreamWriterosw; BufferedWriterbw; Stringstr; Scannerin=newScanner(System.in); try{ ServerSocketserver=newServerSocket(4444);//在本机的4444端口开放Server Socketsocket=server.accept();//只要产生连接,socket便可以代表所连接的那个物体,同时这个server.accept()只有产生了连接才会进行下一步操作。 System.out.println(socket.getInetAddress());//输出连接者的IP。 System.out.println("建立了一个连接!"); while(true){ isr=newInputStreamReader(socket.getInputStream()); br=newBufferedReader(isr); System.out.println(socket.getInetAddress()+":"+br.readLine()); osw=newOutputStreamWriter(socket.getOutputStream()); bw=newBufferedWriter(osw); System.out.print("回复:"); str=in.nextLine(); bw.write(str+"\n"); bw.flush(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }
客服端
importjava.io.BufferedReader; importjava.io.BufferedWriter; importjava.io.IOException; importjava.io.InputStreamReader; importjava.io.OutputStreamWriter; importjava.net.ServerSocket; importjava.net.Socket; importjava.util.Scanner; publicclassClient_1{ publicstaticvoidmain(String[]args){ InputStreamReaderisr; BufferedReaderbr; OutputStreamWriterosw; BufferedWriterbw; Stringstr; Scannerin=newScanner(System.in); try{ Socketsocket=newSocket("localhost",4444); //System.out.println(socket.getInetAddress());//输出连接者的IP。 System.out.println("成功连接服务器"); while(true){ osw=newOutputStreamWriter(socket.getOutputStream()); bw=newBufferedWriter(osw); System.out.print("回复:"); str=in.nextLine(); bw.write(str+"\n"); bw.flush(); isr=newInputStreamReader(socket.getInputStream()); br=newBufferedReader(isr); System.out.println(socket.getInetAddress()+":"+br.readLine()); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }
更多关于java相关内容感兴趣的读者可查看本站专题:《JavaSocket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。