furongwei 2019-12-18
TCP编程是面向连接的数据传输,所以需要时用IO流来建立连接。
用户输出流到服务器,服务器输入流接收数据。
服务器输出流到用户,用户输入流接收。
package _20191218; import java.io.DataInputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; /** * 通过tcp传输数据的服务端,实现的是服务器端 * @author TEDU * */ public class TCPServer { public static void main(String[] args) throws IOException { System.out.println("-----server------"); //建立服务器 ServerSocket server = new ServerSocket(6677); //阻塞式接收Socket Socket client = server.accept(); //建立连接 DataInputStream dis = new DataInputStream(client.getInputStream());//选择需要的合适的流,不需要如本文的流 //接收数据并处理 Object obj1 = dis.readUTF(); Object obj2 = dis.readInt(); Object obj3 = dis.readFloat(); System.out.println(obj1); System.out.println(obj2); System.out.println(obj3); //关闭流及服务器 dis.close(); client.close(); //server.close()//服务器无需关闭 } }
package _20191218; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; public class TCPClient { public static void main(String[] args) throws UnknownHostException, IOException { System.out.println("-----client------"); //新建客户端Socket Socket client = new Socket("localhost",6677); //建立连接 DataOutputStream dos = new DataOutputStream(client.getOutputStream()); //发送数据 String str = "fuck"; dos.writeUTF(str); dos.writeInt(89); dos.writeFloat(213.4f); //关闭流和连接 dos.close(); client.close(); } }