Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过套接字将消息从PHP发送到Python_Php_Python_Sockets - Fatal编程技术网

通过套接字将消息从PHP发送到Python

通过套接字将消息从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

我正在尝试使用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_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我删除了它,但我仍然得到了错误。无论如何,谢谢你的帮助!如果它不能修复错误,您可能希望将其保留在那里。对不起,我帮不了你@詹姆斯:没问题,谢谢你抽出时间。