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();
	}
}