python udp服务器示例代码
时间: 2023-09-12 18:10:21 浏览: 44
以下是一个Python UDP服务器示例代码:
```
import socket
# 创建UDP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定IP地址和端口号
sock.bind(('127.0.0.1', 8888))
while True:
# 接收数据
data, addr = sock.recvfrom(1024)
print(f"收到来自{addr}的消息:{data.decode()}")
# 发送数据
reply = "我是UDP服务器,已收到你的消息"
sock.sendto(reply.encode(), addr)
```
该代码创建了一个UDP套接字,并绑定了IP地址和端口号。然后进入循环,不断接收来自客户端的数据,并将其打印出来。然后服务器会给客户端回复一条消息,告诉客户端已经收到了它的消息。
相关问题
python udp
UDP (User Datagram Protocol) 是一种无连接的网络传输协议,它可以在计算机之间快速传输数据。在 Python 中,可以使用内置的 socket 模块来实现 UDP 通信。
要使用 UDP,首先需要创建一个套接字(socket),指定协议为 UDP。然后可以使用 sendto() 方法发送数据,或者使用 recvfrom() 方法接收数据。发送方将数据包发送到目标主机的指定端口上,接收方则监听指定端口以接收数据包。
下面是一个简单的示例代码:
```python
import socket
# 创建一个 UDP 套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据到指定地址和端口
server_address = ('127.0.0.1', 12345)
message = 'Hello, UDP!'
sock.sendto(message.encode(), server_address)
# 接收来自服务器的响应
data, address = sock.recvfrom(1024)
print('Received:', data.decode())
# 关闭套接字
sock.close()
```
在上面的示例中,我们创建了一个 UDP 套接字,并发送了一条消息到指定的服务器地址和端口。然后通过 recvfrom() 方法接收来自服务器的响应,并打印出来。最后关闭了套接字。
请注意,示例中的地址和端口是示意性的,并非真实可用的,你需要根据实际情况修改。
希望对你有所帮助!如果还有其他问题,请继续提问。
python UDP报文
UDP是一种无连接的传输协议,它不保证数据传输的可靠性,但是传输速度快。在Python中,可以使用socket库来实现UDP报文的发送和接收。下面是一个简单的UDP客户端和服务器端的示例代码:
UDP服务器端代码:
```python
import socket
# 创建UDP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定IP地址和端口号
server_address = ('localhost', 8888)
server_socket.bind(server_address)
# 接收数据
while True:
data, client_address = server_socket.recvfrom(1024)
print('received {} bytes from {}'.format(len(data), client_address))
print(data.decode())
# 发送响应数据
response = 'Hello, client!'
server_socket.sendto(response.encode(), client_address)
```
UDP客户端代码:
```python
import socket
# 创建UDP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据
server_address = ('localhost', 8888)
message = 'Hello, server!'
client_socket.sendto(message.encode(), server_address)
# 接收响应数据
data, server_address = client_socket.recvfrom(1024)
print('received {} bytes from {}'.format(len(data), server_address))
print(data.decode())
# 关闭socket
client_socket.close()
```
在上面的示例代码中,服务器端首先创建了一个UDP socket,并将其绑定到本地IP地址和端口号。然后,服务器端进入一个无限循环,不断接收客户端发送的数据,并发送响应数据。客户端首先创建了一个UDP socket,并向服务器端发送数据。然后,客户端接收服务器端发送的响应数据。