Python,Windows 和 Raspberry pi 之间的套接字 3
Python, Socketing between Windows and Raspberry pi 3
所以当我遇到一个奇怪的问题时,我才开始学习套接字。当 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
在您的客户端代码中,您有一个 clientsocket,然后调用 clientserver,然后调用 s。 clientserver 和 s 都未定义。尝试:
#client code
import socket
clientsocket = socket.socket()
host = '192.168.0.23'
port = 2613
clientsocket.connect((host,port))
print (clientsocket.recv(1024))
clientsocket.close
同时尝试 运行 Windows 上具有管理员权限的服务器脚本,以便它可以打开端口并检查 Windows 上的防火墙设置以获取端口 2613。
所以当我遇到一个奇怪的问题时,我才开始学习套接字。当 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
在您的客户端代码中,您有一个 clientsocket,然后调用 clientserver,然后调用 s。 clientserver 和 s 都未定义。尝试:
#client code
import socket
clientsocket = socket.socket()
host = '192.168.0.23'
port = 2613
clientsocket.connect((host,port))
print (clientsocket.recv(1024))
clientsocket.close
同时尝试 运行 Windows 上具有管理员权限的服务器脚本,以便它可以打开端口并检查 Windows 上的防火墙设置以获取端口 2613。