在实现网络通信时,一个 Socket 需要维护输入端与输出端的 IP 地址和端口号,同时也需要输入与输出字节缓冲区:
输入端与输出端的 IP 地址和端口号
作用
- 标识通信端点:IP 地址用于标识网络中的设备,端口号用于标识设备上的特定应用程序或服务。通过 IP 地址和端口号的组合,Socket 可以准确地定位到通信的源端和目的端。例如,当你使用浏览器访问网站时,浏览器会通过 Socket 与服务器建立连接,此时需要知道服务器的 IP 地址和对应的端口号(通常 Web 服务使用 80 或 443 端口)。
- 区分不同连接:在一个设备上可能同时运行多个网络应用程序,每个应用程序可能会使用多个 Socket 进行通信。通过端口号的不同,可以区分不同的连接,确保数据能够准确地发送到目标应用程序。
示例代码(Python)
import socket
# 创建一个 TCP Socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定服务器的 IP 地址和端口号
server_address = ('127.0.0.1', 8888)
server_socket.bind(server_address)
# 监听连接
server_socket.listen(1)
print('Waiting for a connection...'