传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1] 定义。
建立2个类 TcpServer TcpClient
public class TcpServer {
public static void main(String[] args)throws IOException {
//创建一个socket的链接
ServerSocket serverSocket =new ServerSocket(8888);
System.out.println("tcp server is started......");
//无线循环
while (true) {
//等待客户端请求 如果有请求 分配一个socket
Socket socket = serverSocket.accept();
//构建一个bufferreader对象
BufferedReader bufferedReader =new BufferedReader(new InputStreamReader(socket.getInputStream()));
String buffer =null;
//读取每一行数据
while ((buffer = bufferedReader.readLine()) !=null && !buffer.equals("")) {
System.out.println("buffer: " + buffer);
}
//通过sockerr对象构造输出流
BufferedWriter bufferedWriter =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//模拟http请求头信息
bufferedWriter.write("HTTP/1.1 200 ok \r\n Content-Type:text/html \r\n charset=UTF-8 \r\n\r\n");
//html体
bufferedWriter.write("<html><head><title>http请求</title></head><body><h1>this is http request</h1></body></html>");
//刷新数据流使得数据马上发送
bufferedWriter.flush();
//关闭请求
bufferedWriter.close();
bufferedReader.close();
socket.close();
}
}
}
浏览器端测试如下:
public class TcpClient {
public static void main(String[] args)throws IOException {
String msg ="hello smile";
//创建一个socket建立一个连接
Socket socket =new Socket("127.0.0.1", 8888);
//创建一个printWriter 读写器
PrintWriter printWriter =new PrintWriter(socket.getOutputStream());
//发送数据
printWriter.println(msg);
//刷新让服务马上获得数据
printWriter.flush();
socket.close();
}
}
客户端测试如下: