乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      TCP建立連接三次握手過程詳解(wireshark截圖、java socket源碼)

       昵稱29273511 2015-12-10

      TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。

      三次握手協(xié)議建立連接圖

      握手過程步驟如下(配wireshark分析圖):


      1、客戶端發(fā)送SYN(SEQ=1022)報文給服務(wù)器端,客戶端進入SYN_SEND狀態(tài)。

      2、服務(wù)器端收到SYN報文,回應(yīng)一個SYN (SEQ=2032)ACK(ACK=1022+1)報文,服務(wù)器段進入SYN_RECV狀態(tài)。

      注意:服務(wù)器根據(jù)syn=1判斷客戶端請求建立連接,返回ack=1



      3、客戶端收到服務(wù)器端的SYN報文,回應(yīng)一個ACK(ACK=2032+1)報文,進入Established狀態(tài)。

      注意:確認ack number是否與第一次發(fā)送(seq number+1)相等,并ack=1。正確,發(fā)送ack number = seq number(服務(wù)器順序編號)+1


      服務(wù)器端:確認ack number是否與第一次發(fā)送(seq number+1)相等,并ack=1。正確,連接建立。

      連接建立完成,可以傳送數(shù)據(jù)了。

      java測試源碼(只有握手部分)

      服務(wù)器代碼:

      package com.wangshihai.util;import java.io.IOException;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;/** * * @ClassName: TCPServerSocket* @Description: TODO(tcp server socket類型)* @author 技術(shù)雜貨鋪 wangshihai.com* @date 2015年7月25日 上午8:49:54* */public class TCPServerSocket {	private static ServerSocket serverSocket;	private static Socket socket;	/**	 * 	* @Title: startServerSocket 	* @Description: TODO(根據(jù)端口,綁定本機地址,建立serversocket) 	* @param @param bindPort    綁定端口	* @param @param bindIp      綁定地址	* @param @param blocknumber 允許客戶端連接的個數(shù) 	* @return void    返回類型 	* @throws	 */	public static void startServerSocket(int bindPort,String bindIp,int blocknumer){		try {			serverSocket = new ServerSocket(bindPort,blocknumer,InetAddress.getByName(bindIp));			socket = serverSocket.accept();			System.out.println('連接的客戶端地址和端口為:'+socket.getRemoteSocketAddress());		} catch (IOException e) {			e.printStackTrace();		}	}		/**	 * 	* @Title: main 	* @Description: TODO(測試防范) 	* @param @param args    設(shè)定文件 	* @return void    返回類型 	* @throws	 */	public static void main(String[] args) {		startServerSocket(6000,'192.168.2.100',3);	}}


      客戶端代碼:

      package com.wangshihai.util;import java.io.IOException;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;/** * * @ClassName: TCPClientSocket* @Description: TODO(連接server socket 工具類)* @author 技術(shù)雜貨鋪 wangshihai.com* @date 2015年7月25日 上午9:17:33* */public class TCPClientSocket {	private static Socket socket;	/**	 * 	* @Title: connectServerSocket 	* @Description: TODO(根據(jù)服務(wù)器的IP和端口,建立socket連接) 	* @param @param bindPort 訪問的服務(wù)器端口 	* @return void    返回類型 	* @throws	 */	public static void connectServerSocket(int bindPort){		InetAddress inetAddress;		try {			//根據(jù)字符串IP獲取inetaddress對象			inetAddress = InetAddress.getByName('192.168.2.100');			socket = new Socket(inetAddress, bindPort);		} catch (UnknownHostException e) {			e.printStackTrace();		} catch (IOException e) {			e.printStackTrace();		}			}		/**	 * 	* @Title: main 	* @Description: TODO(測試方法) 	* @param @param args    設(shè)定文件 	* @return void    返回類型 	* @throws	 */	public static void main(String[] args) {		int bindPort = 6000;		connectServerSocket( bindPort);	}} 


        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多