编写socket程序
时间: 2023-07-23 14:19:08 浏览: 45
这里提供一个基于Python的UDP Socket程序示例,实现PC1和PC2之间的相互通讯:
PC1端代码:
```python
import socket
# 创建UDP Socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定到本机IP和端口号
udp_socket.bind(('192.168.1.101', 8888))
# 发送数据到PC2
dest_ip = '192.168.3.102'
dest_port = 9999
data = 'Hello, PC2!'
udp_socket.sendto(data.encode(), (dest_ip, dest_port))
# 从PC2接收数据
recv_data, addr = udp_socket.recvfrom(1024)
print(f'Received data from {addr}: {recv_data.decode()}')
# 关闭Socket
udp_socket.close()
```
PC2端代码:
```python
import socket
# 创建UDP Socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定到本机IP和端口号
udp_socket.bind(('192.168.3.102', 9999))
# 接收PC1发送的数据
recv_data, addr = udp_socket.recvfrom(1024)
print(f'Received data from {addr}: {recv_data.decode()}')
# 发送数据到PC1
dest_ip = '192.168.1.101'
dest_port = 8888
data = 'Hello, PC1!'
udp_socket.sendto(data.encode(), (dest_ip, dest_port))
# 关闭Socket
udp_socket.close()
```
在代码中,首先创建了UDP Socket,并绑定到本机的IP地址和端口号。然后在PC1端向PC2发送了一条数据,通过`sendto()`方法指定了对方的IP地址和端口号。接着在PC2端从UDP Socket中接收数据,通过`recvfrom()`方法获取发送方的IP地址和端口号。然后在PC2端向PC1发送了一条数据,同样通过`sendto()`方法指定了对方的IP地址和端口号。最后关闭UDP Socket。
需要注意的是,IP地址和端口号需要根据实际情况进行修改。同时还需要保证PC1和PC2之间的路由器配置正确的路由表,才能使数据包正确转发。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)