關於繫結IP地址與埠號的見解
客戶和伺服器通過呼叫函式bind時可以指定IP地址或埠號,可以都指定,也可以都
不指定,根據期望的結果,對sin_addr和sin_port,或sin6_addr和sin6_port應置為什麼值,下面做了總結:
/**
程序指定
結果IP地址
埠
通配地址
0
核心選擇IP地址和埠
通配地址
非0
核心選擇IP地址,程序指定埠
本地IP地址
0
程序指定IP地址,核心選擇埠
本地IP地址
非0
程序指定IP地址和埠
**/
客戶端1.TCP客戶端:
1)當TCP客戶未繫結IP地址,當它呼叫connect時核心會根據外出介面給它繫結一個IP地址和一個臨時埠號。並且TCP伺服器在接到這個連線後會以這個IP地址作為迴應資料報的目的IP地址。
2)當TCP客戶綁定了IP地址,它就為發出的資料連線指定了一個源IP地址,並且TCP伺服器在接到這個連線後會以這個IP地址作為迴應資料報的目的IP地址。
3)TCP客戶只能根據四元組(原埠號,原IP地址,目的埠號,目的IP地址)接受資料報。
2.UDP客戶端:
1)當UDP客戶未繫結IP地址,當它呼叫sendto時核心會根據外出介面給它繫結一個IP地址和一個臨時埠號。(UDP客戶可以接收到達它繫結的臨時埠的任何UDP資料報)。
2)當UDP客戶綁定了IP地址,它就為發出的資料報指定了一個源IP地址,並且UDP伺服器在接到這個資料報後會以這個IP地址作為迴應資料報的目的IP地址。(UDP客戶只能接收到達它繫結的臨時埠並且目的地址為它繫結的IP地址
3)當UDP客戶呼叫connect,核心記錄下對方的IP地址和埠號,它們包含在傳遞給connect的套介面地址結構中,併為UDP客戶綁定了一個臨時埠號和IP地址。(UDP客戶只能接收目的IP地址為它繫結的IP地址和埠號並且源IP地址為它指定對方的IP地址和埠號的資料報)。
伺服器端
1.TCP伺服器:
1)當TCP伺服器繫結通配IP地址,套介面會接收到達它繫結埠的任何TCP連線。並以接收的目的IP地址作為它的源IP地址(用以確定四源組),以接收的源IP地址作為它的目的IP地址發回應答。
2)當TCP伺服器繫結本地IP地址,這就限制了套介面只接收到達它繫結埠並且目的地址為此IP地址的客戶連線。以繫結的目的IP地址作為源IP地址(當然,繫結的IP地址肯定與接收連線的目的IP地址相同,否則它不會接收),並以接收的源IP地址作為它的目的IP地址發回應答。
2.UDP伺服器:
1)當UDP伺服器繫結通配IP地址,套介面會接收到達它繫結埠的任何UDP資料報。並以資料報的外出介面的主IP地址為源IP地址,以接收到的源IP地址作為它的目的IP地址發回應答。
2)當UDP伺服器繫結本機IP地址,這就限制了套介面只接收到達它繫結埠並且目的地址為此IP地址的UDP資料報。並以繫結的IP地址作為源IP地址,以接收的源IP地址作為它的目的IP地址發回應答。
3)當UDP伺服器呼叫connect,核心記錄下對方的IP地址和埠號,它們包含在傳遞給connect的套介面地址結構中,併為UDP伺服器綁定了一個臨時埠號和IP地址。(UDP伺服器只能接收目的IP地址為它繫結的IP地址和埠號並且源IP地址為它指定對方的IP地址和埠號的資料報)。
相關推薦
關於繫結IP地址與埠號的見解
客戶和伺服器通過呼叫函式bind時可以指定IP地址或埠號,可以都指定,也可以都 不指定,根據期望的結果,對sin_addr和sin_port,或sin6_addr和sin6_port應置為什麼值,下面
Linux的Apache應用筆記--繫結指定地址與埠
配置Apache HTTP伺服器來監聽特定的地址和埠 概述 Listen: 監聽指定的埠或主機地址或者兩者的組合,這決定了httpd如何響應不同的ip地址、主機名和埠。 為了讓主機響應埠8
node——5-ip地址 和 埠號 的概念
所有聯網的程式都需要進行網路通訊,都會佔用一個埠號 可以同時開啟多個服務,但要保證不同服務佔用的埠號不一致 計算機中只有一個物理網絡卡,而且同一個區域網中,網絡卡的地址必須是唯一的。 網絡卡是通過唯一的 ip 地址來進行定位的。 IP 地址用來定位計算機 埠號用來定位具體的應用程式(
嵌入式Linux網路程式設計,網路基礎,套接字socket(SOCK_STREAM、SOCK_DGRAM、SOCK_RAW),IP地址,埠號,位元組序,位元組序轉換函式,IP地址的轉換
文章目錄 1,socket 1.1,socket的型別(SOCK_STREAM、SOCK_DGRAM、SOCK_RAW) 1.2,socket的位置 2,IP地址 2.1,特殊IP地址: 3,埠號
【119】用Java實現TCP協議的IP地址和埠號的轉發功能
最近碰到了這樣的需求:使用者通過TCP訪問伺服器 A,伺服器 A 再把 TCP 請求轉發給伺服器 B;同時伺服器 A 把伺服器 B 返回的資料,轉發給使用者。也就是伺服器 A 作為中轉站,在使用者和伺服器 B 之間轉發資料。示意圖如下: 為了滿足這個需求,
IP地址、埠號、網路位元組序
一.IP地址1. 簡單認識 IP協議有兩個版本:IPv4和IPv6。 (1)IP地址在IP協議中,用來標識網路中不同主機的地址。 (2)對於IPv4來講,IP地址是一個4位元組,32位的整數;對於IPv6來講,IP地址是一個16位元組,128位的整數。(3)我們常用“點分十進
根據socket獲取IP地址,埠號
String CTalkRoomDlg::GetSocketInfo(SOCKET sSocket) { CString strFmt; sockaddr_in addr; int nLen = sizeof(addr); getsockname(sSock
Socket獲取客戶端IP地址及埠號
Socket類包含一些非常有用的屬性,這些屬性允許確定關於正在連線的客戶端的資訊。其中關鍵資訊之一是返回EndPoint物件的RemoteEndPoint屬性。EndPoint類本身是抽象的,要想收集有用的資訊,需·要把EndPoint強制型別轉換為IPEndPoint物
Winsock:獲取UDP資料傳送端的IP地址和埠號
UDP的接收端使用函式 recvfrom接收資料,這個函式在winsock.h中定義如下: int recvfrom( __in SOCKET s, __out char* buf, __in int len,
IP地址和埠號(1024-65535)的正則表示式
工作需要,網上找了好久,分享下能用的。 IP地址: "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\." + "(1\\d{2}|2[0-4]\\d|2
黑客如何通過使用你的ip地址和埠號來入侵你的電腦,我們又該如何防範
ports of target’s IP address[ xxxx ] .Open ports are like closed door without locks, you can go inside and outside easily.Note down open ports somewhere w
本地遠端連線雲伺服器的Mysql , 連線不了問題的可能原因: 繫結ip,設定訪問許可權,埠號開放
1. 先設定雲伺服器上的mysql允許遠端訪問 . 編輯檔案/etc/mysql/mysql.conf.d/mysqld.cnf: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 註釋掉bind-address = 127.0.0.1:修改為
C# Socket程式設計之繫結IP與埠
Socket serverSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); //獲取Socket &
Qt自動獲取本機IP與TCP客戶端繫結IP和埠
客戶端使用特定的埠號與伺服器進行通訊,這是在進行網路程式設計開發時候經常容易遇到的問題。這篇部落格是關於網路程式設計中客戶端編寫的小總結。 繫結埠號 在Qt的Socket開發中,有豐富的函式可以呼叫,要實現客戶端繫結指定的埠,只需要在建立Soc
如何繫結hosts檔案?怎麼將IP地址與域名繫結?
什麼是Hosts檔案?Hosts是一個沒有副檔名的系統檔案,主要作用是定義IP地址和主機名的對映關係,就是將一些常用的域名網址與其對應的IP地址建立一個關聯“資料庫”,當用戶在瀏覽器中輸入一個需要登入的網址時,系統會首先自動從Hosts檔案中尋找對應的IP地址,如果找到,系統會立即開啟對應網頁,若沒有找到,則
Windows 7下用arp命令繫結IP和MAC地址,提示“ARP 項新增失敗: 拒絕訪問”的解決方法
在Win 7版本以管理員身份執行時提示:“ARP 項新增失敗:請求的操作需要提升。” 解決辦法: CMD中輸入:netsh i i show in //注意兩個i之間是有空格的 然後找到“本地連線”對應的 “Idx” (我的是
linux ping IP地址與telnet 測試IP埠
ping命令是不能夠測試埠的,ping只是測試網路聯接狀況以及資訊包傳送和接收狀況。 格式:ping IP地址或主機名 [-t] [-a] [-n count] [-l size] 引數含義:-t不停
Linux Arp命令繫結IP和MAC地址防止ARP欺騙
Linux Arp命令危害:Linux Arp命令危害極大,有的病毒就使用ARP欺騙,不僅影響自身機器,同時也會影響同網段的其它機器,將其它機器的HTTP資料包里加入病毒程式碼。 1、程式碼例子如:<html><iframe src=http://病毒連結.htm width=0 h
Android中驗證輸入是否為漢字及手機號,郵箱驗證,IP地址可用port號驗證
bili repl ips gettext content 驗證 arr mat 數據 1,驗證是否為漢字 // 驗證昵稱 private boolean verifyNickname() { String nickname = edt_use
IP地址與MAC地址
class gateway 運行 釋放 width 無法 是否 adapter sub 眾所周知,每一塊網卡在出廠時都燒錄了世界唯一的MAC地址,使用該地址可以在網絡中識別不同的計算機。同時,互聯網中也使用IP地址來定位客戶端,這是因為IP地址比MAC地址定位更方便,而且也