链接复位(connect-reset)

服务端代码:java

package com.haida.wuwnlun.socket;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
	
	public static void main(String[] args) {
		try {
			ServerSocket serverSocket = new ServerSocket(23123);
			while(true) {
				Socket socket = serverSocket.accept();
				InputStream input = socket.getInputStream();
				int length = 1024;
				byte[] b = new byte[length];
				int i = 0;
				while(i!=-1) {
					i = input.read(b);//若是Client端中的socket不执行close(),server端的该处就一直阻塞在这里,不往下执行。
					if(i!=-1) {
						System.out.println(new String(b).toString());
					}
				}
				OutputStream out = socket.getOutputStream();
				PrintWriter pout = new PrintWriter(out);
				pout.println("服务器已经收到你的来电!");
				pout.flush();
				socket.close();
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

 

客户端代码:服务器

package com.haida.wuwnlun.socket;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
	public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException {
		Socket socket = new Socket("127.0.0.1", 23123);
		OutputStream out = socket.getOutputStream();
		String content = "你好吗?我叫吴文伦!";
		out.write(content.getBytes("Utf-8"));
		out.flush();
		socket.close();
	}
}

 

抓包分析图:socket

 

当socket正在读或者正在写,或者处在读写阻塞状态的时候,对端发过来rst标志时,本端
就会出现以下报错问题:.net

 

须要脑补的知识点:三次握手,四次挥手code

相关文章
相关标签/搜索