我试图在同一硬件上的两个应用程序之间建立一个基本的TCP套接字。我已经在另一台笔记本电脑(充当服务器)和python脚本之间有一个工作套接字,但似乎无法让另一台正常工作。 背景是,我需要在一台笔记本电脑上运行一个用户界面,它通过有线局域网(不需要互联网)连接到运行网络的Rpi(这是用户界面的python脚本和html代码所在的地方)。我需要从python脚本的用户界面访问用户输入,因此我将使用两个脚本(PHP和python)之间的套接字来发送数据。 Rpi已经作为一个独立系统的客户端,数据通过它的socket很好地传入,我打算在PHP脚本中创建一个新的socket(我想它会变成一个服务器),然后作为Python脚本中的客户端从这个socket读取数据。不幸的是,它不起作用,我一直得到:
Traceback (most recent call last):
File "/var/www/Pipe_Sock_v3.py",line 33, in <module>
tcpConfigSock.connect(ADDRCONFIG)
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 111] Connection refused
PHP socket创建代码如下:
^{pr2}$Python代码(也包括现有的套接字代码):
HOST = 'bbb.bbb.bbb.bbb' #IP address of system I am already getting data from.
HOSTCONFUG = 'aaa.aaa.aaa.aaa' #Rpi IP Address
PORTCONFIG = 8000 #PHP socket port
BUFSIZCONFIG = 4092
ADDRCONFIG = (HOSTCONFIG,PORTCONFIG) #PHP script link
PORTSYS = 6000 #existing system port
BUFSIZSYS = 4092
ADDRSYS = (HOST, PORTSYS) #existing system link
tcpSysSock = socket(AF_INET, SOCK_STREAM) #existing system socket
tcpConfigSock = socket(AF_INET, SOCK_STREAM) #non functioning PHP socket
tcpSysSock.connect(ADDRSYS)
tcpConfigSock.connect(ADDRCONFIG)
我查了很多其他的帖子、书籍和网络,但我似乎找不到我错在哪里。据我所知,只要为每个服务器和客户机提供单独的套接字,TCP网络就可以与同一系统上的服务器和客户端一起工作。 如果你能帮上忙,我会很感激的。在
您的PHP代码缺少对^{} 的调用:
如果没有
socket_accept
,php脚本将在socket_listen
之后退出,而无需等待客户端连接。在相关问题 更多 >
编程相关推荐