面向非连接的socket编程代码
时间: 2024-10-03 10:03:19 浏览: 12
面向非连接的Socket编程通常涉及到UDP(用户数据报协议),因为UDP是一种无连接的传输层协议。以下是一个简单的Python示例,展示了如何创建一个发送和接收UDP数据的基本客户端和服务器:
**服务器端代码** (udp_server.py):
```python
import socket
def udp_server():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('localhost', 12345) # 监听地址和端口
print(f'Server started at {server_address}')
while True:
data, client_address = server_socket.recvfrom(1024) # 接收数据,最大缓存1KB
print(f'Received: {data.decode()} from {client_address}')
response = 'Echo: ' + data.decode() # 反馈消息
server_socket.sendto(response.encode(), client_address)
if __name__ == "__main__":
udp_server()
```
**客户端代码** (udp_client.py):
```python
import socket
def udp_client(message):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('localhost', 12345) # 发送到同一台机器的服务器地址
client_socket.sendto(message.encode(), server_address)
received_message, server_address = client_socket.recvfrom(1024)
print(f'Response from {server_address}: {received_message.decode()}')
if __name__ == "__main__":
message = input('Enter a message to send: ')
udp_client(message)
```
在这个例子中,服务器持续监听来自客户端的消息,并简单地原样返回。客户端则向服务器发送一条消息并接收回复。