python实现客户端接收服务端发送的数据 UDP实现

服务端代码:server_UDP.py

import socket
import time
address = ('127.10.0.1', 31500)  # 服务端地址和端口
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 创建socket
s.bind(address)  # 绑定服务端地址和端口

count=0
useraddr = ('127.4.3.100', 8888)   # 客户端的地址和端口,后面将发送数据到该地址和端口
while count<100000:  
    count+=1
    time.sleep(0.0001) # 发送间隔
    send = "Data from server"+str(count) # 编辑发送的数据
    s.sendto(send.encode(), useraddr)  # UDP 是无状态连接,所以每次连接都需要给出目的地址
s.close()

客户端代码: user_UDP.py

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # 创建socket
bindAddr = ('127.4.3.100',8888)  # 用于客户端的地址和端口绑定
s.bind(bindAddr)    # 将socket绑定地址和端口,实际使用中只需要绑定端口即可,地址由电脑确定
while True:
    data, addr = s.recvfrom(1024)  # 返回数据和接入连接的(服务端)地址,得到服务端发来的数据和地址
    data = data.decode()  # 解码数据
    print('[Recieved data]:', data, '[Server addr]:', addr) 
s.close()

依次执行两端代码:

python server_UDP.py
python user_UDP.py

客户端收到的数据显示结果:
请添加图片描述

在socket编程中,客户端接收服务端消息通常涉及到以下几个步骤: 1. **建立连接**:首先,客户端通过指定服务器的IP地址和端口号,创建一个套接字(socket)并尝试连接到服务端。如果连接成功,会返回一个表示连接的文件描述符。 2. **发送请求**:在连接建立后,客户端可以向服务端发送数据,通常包含一个请求消息。这通常使用`write()`函数将数据写入socket连接。 3. **接收响应**:客户端需要设置一个接收缓冲区,使用`recv()`或`read()`函数从服务端读取数据。这些函数会在有可用数据时阻塞直到接收到完整的消息。 4. **解码数据**:接收到的数据通常是字节流,需要进行相应的解码,比如字符串解码、JSON解析等,以便获取实际的消息内容。 5. **处理消息**:客户端根据接收到的消息执行相应的操作,例如显示在界面上,或者进一步处理业务逻辑。 6. **断开连接**:完成通信后,客户端通常关闭连接,使用`close()`函数释放资源。 ```python import socket client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect(('localhost', 8080)) # 连接到本地服务器 request_message = "Hello Server" # 发送请求 client_socket.send(request_message.encode()) # 发送编码后的消息 data = client_socket.recv(1024) # 接收服务器响应 response = data.decode() # 解码接收到的数据 print("Received:", response) client_socket.close() # 关闭连接 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值