【发布时间】:2017-07-23 18:22:53
【问题描述】:
所以当我遇到一个奇怪的问题时,我才开始倾向于使用套接字。当 Pi 运行我的服务器脚本和我的 Windows 运行我的客户端脚本时,我可以在我的 Window 计算机和我的 Raspberry pi 之间建立连接,但是当我尝试在我的 Windows 上运行服务器脚本和我的 Pi 上的客户端时,它们没有连接(当然是在切换主机之后)。有人知道为什么会这样吗?
#server code
import socket
import time
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
host = '192.168.0.23'
port = 2613
serversocket.bind((host, port))
serversocket.listen(5)
while True:
clientsocket, addr = serversocket.accept()
print("Got a connection from %s" % str(addr))
currentTime = time.ctime(time.time()) + "\r\n"
clientsocket.send(currentTime.encode('ascii'))
clientsocket.close()
和
#client code
import socket
clientsocket = socket.socket()
host = '192.168.0.23'
port = 2613
clientserver.connect((host,port))
print s.recv(1024)
clientserver.close
【问题讨论】:
-
1- 此代码在同一台机器上不起作用,2- 服务器不能先通话(如果不是广播服务器),3- 定义超时时间,4- 连接成功是一条消息(发送空值或信息数据无关紧要),5-需要使用四个端口来加快数据速率!,6-单个数据操作需要一个没有循环的外部函数。 7- 服务器使用 TCP 方法,但如何在客户端解析方法(使用
socket.create_connection) -
Windows 防火墙?
标签: python windows sockets unix raspberry-pi3