鏈接復位(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

相關文章
相關標籤/搜索