socket编程(基于TCP/UDP协议的通信)

本文介绍了基于TCP和UDP协议的socket编程,包括TCP连接的套接字概念,如何利用TCP实现多线程通信,以及展示了UDP通信和多线程的应用。此外,还模拟了urllib获取网页内容以及构建简易Web服务器的过程。
摘要由CSDN通过智能技术生成

基于tcp的通信

TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种断点我们叫作套接字(socket)
服务端:
import socket
# 1. 创建一个socket对象;
# family指定使用IP协议的版本: IPV4:AF_INET;  ipv6: AF_INET6
# type指定传输层使用的协议类型:TCP(SOCKET.SOCK_STREAM), UDP(SOCK_DGRAM)
server=socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM)

# 2. 绑定一个IP和端口, 供客户端来连接;
server.bind(('172.25.254.67', 4002))

# 3. 监听是否有客户端连接
server.listen(5)
print("服务端正在启动.........")

# 4. 接收客户端的连接, accept() -> (socket object, address info)
clientSocket,address=server.accept()
print("客户端的地址:", address)

# 5. 接收客户端发送的消息
recvData=clientSocket.recv(1024)
print("服务端接收的消息:", recvData.decode('utf-8'))

# 6. 给客户端回复消息, send(self, data: **bytes***, flags: int = ...) -> int: ...
clientSocket.send('你好, 客户端'.encode('utf-8'))

# 7. 关闭服务端socket对象
server.close()
clientSocket.close()


客户端:
import socket
# 1. 创建一个socket对象;
# family指定使用IP协议的版本: IPV4:AF_INET;  ipv6: AF_INET6
# type指定传输层使用的协议类型:TCP(SOCKET.SOCK_STREAM), UDP(SOCK_DGRAM)
client = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)

# 2. 连接服务端(ip, port)
client.connect(('172.25.254.67', 4002))

# 3. 给服务端回复消息, send(self, data: **bytes***, flags: int = ...) -> int: ...
client.send("你好, 服务端".encode('utf-8'))

# 4. 接收服务端回复的消息
recvData = client.recv(1024
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值