只需要使用python的socket库就可以建立两台电脑的数据通信
选择主机和端口
选择一个电脑以它的端口作为交换的点,所有的数据都往这个点发送,或从这个点获取。
通常选服务器的端口作交换数据的地点,当然选客户端的端口也完全不影响。
比如我选的是服务器的端口,需要在server.bind() 里传入1
("192.168.2.38",5016)
一旦一个使用bind绑定本机ip和端口了,另一个电脑只需要使用client.connect(),传入相同参数元组建立连接就可以了1
("192.168.2.38",5016)
这时使用1
netstat -anp | grep 5016
指令查看端口情况就可以看到一个ip在监听该ip下的这个端口,另一个ip的某个端口在和该端口建立了连接1
2tcp 0 0 192.168.2.38:5016 0.0.0.0:* LISTEN 16062/python3
tcp 0 0 192.168.2.38:5016 192.168.3.43:56202 ESTABLISHED 16062/python3
上面结果的意思是:
0.0.0.0:*,也就是本机在监听192.168.2.38:5016
192.168.3.43:56202和192.168.2.38:5016建立了连接
建立连接&发送接收信息
服务器和客户端的控制变量是通过1
2
3server = socket.socket()
或
client = socket.socket()
建立的。
服务器段使用server.listen()监听端口,使用conn,addr=server.accept()确认连接,使用data = conn.recv(1024)接收数据,使用conn.send()发送数据。
客户端少一条,在三次握手中它只主动发起一次请求。
客户端使用client.connect(())建立连接,使用client.recv(1024)接收数据,使用client.send()发送数据。
完整代码
1 | import socket |
1 | import socket |