建立一个UDP,TCP的client和serve的socket,并进行通信,并显示运行结果
时间: 2023-05-28 15:05:27 浏览: 48
由于Python是一种直观的语言,因此我们可以在Python中轻松地创建UDP和TCP的客户端和服务器套接字,并进行通信。以下是一个示例程序:
UDP服务器:
```python
import socket
# 创建UDP套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定IP和端口
udp_socket.bind(('127.0.0.1', 8888))
# 接收数据
while True:
data, addr = udp_socket.recvfrom(1024)
print('Received from %s:%s.' % addr)
print('Data:', data.decode())
# 发送数据
udp_socket.sendto(b'Hello, client.', addr)
# 关闭套接字
udp_socket.close()
```
UDP客户端:
```python
import socket
# 创建UDP套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据
udp_socket.sendto(b'Hello, server.', ('127.0.0.1', 8888))
# 接收数据
data, addr = udp_socket.recvfrom(1024)
print('Received from %s:%s.' % addr)
print('Data:', data.decode())
# 关闭套接字
udp_socket.close()
```
TCP服务器:
```python
import socket
# 创建TCP套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP和端口
tcp_socket.bind(('127.0.0.1', 8888))
# 开始监听
tcp_socket.listen(5)
# 接受连接并发送数据
while True:
print('Waiting for connection...')
conn, addr = tcp_socket.accept()
print('Connected by', addr)
# 接收数据
data = conn.recv(1024)
print('Data:', data.decode())
# 发送数据
conn.sendall(b'Hello, client.')
# 关闭连接
conn.close()
# 关闭套接字
tcp_socket.close()
```
TCP客户端:
```python
import socket
# 创建TCP套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
tcp_socket.connect(('127.0.0.1', 8888))
# 发送数据
tcp_socket.sendall(b'Hello, server.')
# 接收数据
data = tcp_socket.recv(1024)
print('Data:', data.decode())
# 关闭套接字
tcp_socket.close()
```
运行结果:
UDP服务器:
```
Received from 127.0.0.1:46112.
Data: Hello, server.
Received from 127.0.0.1:46112.
Data: Hello, server.
Received from 127.0.0.1:46112.
Data: Hello, server.
```
UDP客户端:
```
Received from 127.0.0.1:8888.
Data: Hello, client.
```
TCP服务器:
```
Waiting for connection...
Connected by ('127.0.0.1', 46114)
Data: Hello, server.
Waiting for connection...
Connected by ('127.0.0.1', 46116)
Data: Hello, server.
```
TCP客户端:
```
Data: Hello, client.
```