PHP到Python的TCP套接字拒绝连接

2024-10-01 00:34:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在同一硬件上的两个应用程序之间建立一个基本的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网络就可以与同一系统上的服务器和客户端一起工作。 如果你能帮上忙,我会很感激的。在


Tags: 代码网络服务器脚本客户端connectsocket用户界面
1条回答
网友
1楼 · 发布于 2024-10-01 00:34:03

您的PHP代码缺少对^{}的调用:

socket_accept($sock);

如果没有socket_accept,php脚本将在socket_listen之后退出,而无需等待客户端连接。在

相关问题 更多 >