通过套接字将消息从PHP发送到Python
我正在尝试使用PHP向Python套接字发送一条消息,它将打印该消息 以下是迄今为止的PHP代码:通过套接字将消息从PHP发送到Python,php,python,sockets,Php,Python,Sockets,我正在尝试使用PHP向Python套接字发送一条消息,它将打印该消息 以下是迄今为止的PHP代码: <? $host = "localhost"; $port = 12345; $f = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_set_option($f, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 1, 'usec' => 500000)); $s = socket_con
<?
$host = "localhost";
$port = 12345;
$f = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($f, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 1, 'usec' => 500000));
$s = socket_connect($f, $host, $port);
$msg = "message";
$len = strlen($msg);
socket_sendto($f, $msg, $len, 0, $host, $port);
socket_close($f);
?>
但我得到了以下错误:
Traceback (most recent call last):
File "server.py", line 15, in <module>
print s.recv(1024)
socket.error: [Errno 107] Transport endpoint is not connected
我也试过插座_sendmsg,套接字_write、fwrite等,但Python中的错误始终相同,socket.error:[Errno 107]未连接传输端点
看起来我真的迷路了
有人能帮我吗
谢谢。尝试以下方法:
import socket
s = socket.socket()
host = "localhost"
port = 12345
s.bind((host, port))
s.listen(5)
while True:
c, addr = s.accept()
data = c.recv(1024)
if data: print data
c.close()
主要问题是您的代码在调用s.recv时本应在c.recv上。还要确保您检查了接收到的数据是否为无?打印前。请尝试以下操作:
import socket
s = socket.socket()
host = "localhost"
port = 12345
s.bind((host, port))
s.listen(5)
while True:
c, addr = s.accept()
data = c.recv(1024)
if data: print data
c.close()
主要问题是您的代码在调用s.recv时本应在c.recv上。还要确保您检查了接收到的数据是否为无?打印前。我对套接字不太熟悉,但问题是你用c.close关闭它,这样循环一次后它就不能再听了吗?@James我删除了它,但我仍然得到了错误。无论如何,谢谢你的帮助!如果它不能修复错误,您可能希望将其保留在那里。对不起,我帮不了你@James没问题,我很感谢你的时间。我对sockets不太熟悉,但问题是你用c.close关闭它,这样循环一次后它就不能再听了吗?@James我删除了它,但我仍然得到了错误。无论如何,谢谢你的帮助!如果它不能修复错误,您可能希望将其保留在那里。对不起,我帮不了你@詹姆斯:没问题,谢谢你抽出时间。