TCP协议是面向连接的,相对于UDP协议来说效率较低,但是比较安全,数据不容易丢失。TCP协议类似打电话的过程,在一端拨号时必须等待对方回应,确定两端建立了连接通道才能传送信息。
在Java中TCP被封装成了类方便使用。ServerSocket类可以创建服务端并指定端口,Socket类可以建立起通道。
简单的代码以演示其用法
/** * 建立客户端并接收数据 * @author wxisme * */ public class Client { public static void main(String[] args) throws UnknownHostException, IOException { //客户端的socket通道并指定服务器名和端口与服务器建立连接 Socket socket = new Socket("localhost", 8888); //接收服务器端发送的数据 DataInputStream dis = new DataInputStream( socket.getInputStream()); String echo = dis.readUTF(); System.out.println(echo); dis.close(); System.exit(0); } }
/** * 建立服务器端并向客户端发送数据 * @author wxisme * */ public class SeverSocket { public static void main(String[] args) throws IOException { //建立服务器并指定端口 ServerSocket server = new ServerSocket(8888); //建立socket通道接收客户端 Socket socket = server.accept(); System.out.println("客户端连接成功!"); //向客户端发送数据 DataOutputStream dos = new DataOutputStream( socket.getOutputStream()); dos.writeUTF("Welcome!"); dos.flush(); } }