连接到raspberry pi时的Python套接字问题

时间:2018-02-20 16:20:10

标签: python sockets port

我正在尝试使用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

0 个答案:

没有答案