2023/12/23软件工程日报
Socket编程是一种用于网络通信的编程技术,它允许不同计算机之间的进程进行通信。在Socket编程中,通信的两端分别是客户端和服务器端。Socket是一种抽象层,提供了一个接口,使得程序员可以通过网络发送和接收数据。
1.导入模块: 首先,需要导入相关的模块,通常是socket
模块。
import socket
2.创建Socket: 使用socket
模块创建一个Socket对象。可以选择使用TCP或UDP协议。
# 创建TCP Socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
这里AF_INET
表示使用IPv4地址,SOCK_STREAM
表示使用TCP协议。如果想使用UDP,可以选择SOCK_DGRAM
。
3.绑定地址和端口: 对于服务器,需要绑定一个特定的地址和端口,使得客户端可以连接。
server_address = ('127.0.0.1', 12345) server_socket.bind(server_address)
这里使用了本地地址127.0.0.1
和端口12345
,可以根据实际需求修改。
4.监听连接(仅服务器): 对于服务器,需要开始监听传入的连接请求。
server_socket.listen(5) # 允许同时处理5个连接请求
5.接受连接(仅服务器): 服务器接受客户端的连接请求。
client_socket, client_address = server_socket.accept()
6.发送和接收数据: 使用send()
和recv()
方法发送和接收数据。
# 发送数据 client_socket.send(b'Hello, server!') # 接收数据 data = client_socket.recv(1024)
这里b'Hello, server!'
是一个字节序列,1024
表示接收数据的最大字节数。
7.关闭连接: 当通信结束时,需要关闭连接。
client_socket.close() # 关闭客户端连接
server_socket.close() # 关闭服务器Socket
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通