本文实例讲述了java TCP通信客户端与服务器端。分享给大家供大家参考,具体如下:
由服务器端发送数据
服务器端:
import java.io.*; import java.net.*; public class TestSocket { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(8888); while(true) { Socket s = ss.accept(); OutputStream os = s.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye"); dos.close(); // os.flush(); os.close(); // s.close(); } } catch (IOException e) { e.printStackTrace(); System.out.println("there is a wrong"); } } }
用户端:
import java.io.*; import java.net.*; public class TestClient { public static void main(String[] args){ try { Socket s = new Socket("127.0.0.1",8888); DataInputStream dis = new DataInputStream(s.getInputStream()); System.out.println(dis.readUTF()); s.close(); dis.close(); } catch (Exception e) { e.printStackTrace(); } } }
无论是客户端还是服务器端都可以收发数据。
交互型
用户端
import java.io.*; import java.net.*; public class TestClient2 { public static void main(String[] args){ try { Socket s = new Socket("127.0.0.1",8886); DataOutputStream dos = new DataOutputStream(s.getOutputStream()); DataInputStream dis = new DataInputStream(s.getInputStream()); System.out.println(dis.readUTF()); dos.writeUTF("hey"); String str = null; if((str = dis.readUTF()) != null) { System.out.println(str); } s.close(); dis.close(); dos.close(); } catch (Exception e) { e.printStackTrace(); } } }
服务器端:
public class TestServer2 { public static void main(String[] args) { InputStream in = null; OutputStream out = null; try { ServerSocket ss = new ServerSocket(8886); while(true) { Socket s = ss.accept(); in = s.getInputStream(); out = s.getOutputStream(); DataOutputStream dos = new DataOutputStream(s.getOutputStream()); DataInputStream dis = new DataInputStream(s.getInputStream()); String str = null; if((str = dis.readUTF() )!= null) { System.out.println(str); System.out.println("form " + s.getInetAddress()); System.out.println("port " + s.getPort()); // dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye"); } dos.writeUTF("hi hello"); dis.close(); dos.close(); s.close(); } } catch (IOException e) { e.printStackTrace(); System.out.println("there is a wrong"); } } }
更多关于java相关内容感兴趣的读者可查看本站专题:《Java Socket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
原文链接:https://www.f2er.com/java/534895.html