# Python Socket 编程示例
import socket
# 创建一个服务器端的Socket对象
def create_server(host='127.0.0.1', port=65432):
# AF_INET 表示使用IPv4地址,SOCK_STREAM 表示使用TCP协议
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
# 绑定IP和端口
server_socket.bind((host, port))
# 开始监听连接请求
server_socket.listen()
print(f"Server listening on {host}:{port}")
# 接受客户端连接
conn, addr = server_socket.accept()
with conn:
print(f"Connected by {addr}")
while True:
data = conn.recv(1024)
if not data:
break
print(f"Received: {data.decode()}")
conn.sendall(data)
# 创建一个客户端的Socket对象
def create_client(host='127.0.0.1', port=65432):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
# 连接到服务器
client_socket.connect((host, port))
message = "Hello, Server!"
client_socket.sendall(message.encode())
data = client_socket.recv(1024)
print(f"Received from server: {data.decode()}")
if __name__ == "__main__":
import threading
# 启动服务器线程
server_thread = threading.Thread(target=create_server)
server_thread.start()
# 客户端代码在主进程中运行
create_client()
# 等待服务器线程结束
server_thread.join()
创建服务器:
create_server
函数用于创建一个简单的TCP服务器。socket.socket()
创建一个Socket对象,指定使用IPv4地址 (AF_INET
) 和TCP协议 (SOCK_STREAM
)。bind()
方法绑定服务器的IP地址和端口号。listen()
方法使服务器开始监听连接请求。accept()
方法接受客户端连接,并返回一个新的Socket对象和客户端地址。创建客户端:
create_client
函数用于创建一个简单的TCP客户端。socket.socket()
创建一个Socket对象,同样指定使用IPv4地址和TCP协议。connect()
方法连接到服务器的IP地址和端口号。sendall()
方法发送数据到服务器,recv()
方法接收来自服务器的数据。多线程运行:
threading.Thread
启动服务器线程,使其在后台运行。create_client
来模拟客户端行为。join()
方法等待服务器线程结束。上一篇:python的特性
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站