📜  被动和主动套接字 (1)

📅  最后修改于: 2023-12-03 15:11:55.179000             🧑  作者: Mango

被动和主动套接字

在网络通信中,套接字是实现两个程序之间通信的一种接口。套接字分为被动套接字和主动套接字。

被动套接字

被动套接字通常用于服务器端程序,等待客户端程序的连接请求。被动套接字的创建过程如下:

import socket

# 创建套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定本地 IP 和端口号
s.bind(('127.0.0.1', 8080))

# 监听客户端连接
s.listen()

上述代码使用 Python 的 socket 模块创建了一个 IPv4、TCP 套接字(socket.AF_INET 和 socket.SOCK_STREAM),并将其绑定到本地 IP 地址和端口号。然后调用 listen() 方法开始监听客户端连接请求。

主动套接字

主动套接字通常用于客户端程序,向服务器端程序请求建立连接。主动套接字的创建过程如下:

import socket

# 创建套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 向服务器端发起连接请求
s.connect(('127.0.0.1', 8080))

上述代码使用 Python 的 socket 模块创建了一个 IPv4、TCP 套接字,并调用 connect() 方法向服务器端发起连接请求。

总结一下,被动套接字是服务器端程序用来等待客户端连接请求的套接字,它必须首先通过 bind() 方法来绑定自己的 IP 地址和端口号,并通过 listen() 方法开始监听客户端连接请求。主动套接字是客户端程序用来向服务器端请求建立连接的套接字,它必须通过 connect() 方法来向服务器端发起连接请求。

以上就是被动和主动套接字的介绍。