Bladeren bron

添加网络IP配置

刘聪 3 jaren geleden
bovenliggende
commit
77bb4c8f6c
1 gewijzigde bestanden met toevoegingen van 13 en 0 verwijderingen
  1. 13 0
      cpp/网络编程.md

+ 13 - 0
cpp/网络编程.md

@@ -836,3 +836,16 @@ int bind(int socket, const struct sockaddr *address, socklen_t address_len);
 
 如果TCP客户端或服务器未曾调用`bind`函数绑定端口,当调用`connect`或`listen`时,内核会临时分配端口。让内核选择临时端口对TCP客户端来说正常,但是**服务器的端口必须指定**,因为服务器端口需要外部知道才能主动连接
 
+进程可以把一个特定的IP绑定到它的套接字上,不过这个IP地址必须属于其所在主机的网络接口之一
+
+- 对于TCP客户端来说,这就是为在该套接字上发送的IP数据报制定了源IP地址
+- 对于服务器来说,这就限定该套接字只接受那些目的地为这个IP地址的客户连接
+
+| IP地址 | 端口 | 结果 |
+| --- | --- | --- |
+| 通配地址 | 0 | 内核选择IP地址和端口 |
+| 通配地址 | 非0 | 内核选择IP地址,进程指定端口 |
+| 本地IP地址 | 0 | 进程指定IP地址,内核选择端口 |
+| 本地IP地址 | 非0 | 进程指定IP地址和端口 |
+
+