我正在尝试使用python的套接字模块在PC(Windows)和Raspberry Pi 3之间进行无线通信。服务器是PC,客户端是Pi。当我运行代码(服务器优先然后客户端)时,两个脚本在“嘿,检查TCP套接字”后卡住了。
当我做反向(Pi是服务器,PC是客户端)时,代码工作正常,数据已正确发送。
PC和Pi都连接到同一网络。 PC的IP地址为10.0.0.198,Pi为10.0.0.63。
我认为问题是当我将PC用作服务器时端口未打开。怎么解决这个?
我的客户端脚本:
import socket
import sys
def read(port):
s = socket.socket()
host = '10.0.0.198' #(IP address of PC (server))
s.connect((host,port))
try:
msg = s.recv(1024)
s.close()
except socket.error, msg:
sys.stderr.write('error %s'%msg[1])
s.close()
print 'close'
sys.exit(2)
return msg
if __name__ == '__main__':
port = 1025
while True:
print 'hey, checking TCP socket'
data = read(port)
print 'i just read %s' % data
print 'port num is: %d' % port
port = port + 1
我的服务器脚本:
import socket
import time
def send(data, port):
s = socket.socket()
s.bind(('', port))
s.listen(5)
c, addr = s.accept()
print 'Got connection from',addr
c.send(data)
c.close()
if __name__ == '__main__':
port = 1025
num = 1
while True:
print 'hey, sending data'
words = 'helloWorld'
data = words + str(num)
print 'send data: %s' % data
send(data,port)
port = port + 1
num = num + 1