Javascript PHP python IPC突然停止

Javascript PHP python IPC突然停止,javascript,php,python,network-programming,unix-socket,Javascript,Php,Python,Network Programming,Unix Socket,我已经实现了一个简单的python服务器,它创建了一个Unix域套接字并侦听其中的数据。首先,我用一个文本字段测试了这一点,当按下“Send”时,该文本字段将运行PHP脚本。在我开始工作之后,我添加了一些jquery并尝试发送当前按下的键的键代码。整个系统将在树莓皮上运行 在Ubuntu上构建时,有些东西会停止工作: 如果超过5秒没有发送任何内容(包括文本字段和添加的JavaScript) 在发送了看似任意数量的数据包之后(大多数时间在101左右,但有时在30左右,有时在50左右;我无法辨别这

我已经实现了一个简单的python服务器,它创建了一个Unix域套接字并侦听其中的数据。首先,我用一个文本字段测试了这一点,当按下“Send”时,该文本字段将运行PHP脚本。在我开始工作之后,我添加了一些jquery并尝试发送当前按下的键的键代码。整个系统将在树莓皮上运行

在Ubuntu上构建时,有些东西会停止工作:

  • 如果超过5秒没有发送任何内容(包括文本字段和添加的JavaScript)
  • 在发送了看似任意数量的数据包之后(大多数时间在101左右,但有时在30左右,有时在50左右;我无法辨别这背后的任何明显模式)
将所有内容转移到覆盆子皮上:

  • python服务器实际上只会每秒(添加计数器后每隔三次)接收一次数据包
  • 在收到大约400个数据包后,它开始在您发送数据包时接收每个数据包
  • 但在发送了大量数据包后,或者在等待了一段时间没有输入后,它不再完全停止工作;它只是偶尔会挂一挂
PHP或python在任何时候都没有指出套接字有问题——我最初是用

ini_set('display_errors', 'On');
error_reporting(E_ALL);
Python服务器代码:

import socket, os

s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
try:
    os.remove("/tmp/socketname")
except OSError:
    print 'OSError'
s.bind("/tmp/socketname")
s.listen(1)
n=0
conn = s.accept()[0]
while 1:
    if not conn:
        break
    data = conn.recv(1024)
    if not data:
        break
        print '---'
    if data:
        n=n+1
        print n,
        print data
print 'done'
conn.close()
PHP脚本:

<?php
$sock = pfsockopen  ('unix:///tmp/socketname', 0);

$cmd=$_POST["pressed"];

if(isset($cmd))
{
    if(!$sock) echo("no socket");
    if(!fwrite($sock, $cmd)) echo("Error while writing1!!!<br>\n");
}
?>

HTML文件的相关部分:

<script>     
    $(window).keydown(function(event){
       var req=$.ajax({
          url: "testajaxpost.php",
          type: "POST",
          data: { 'pressed': event.keyCode },
          error: function (jqXHR, textStatus, errorThrown)
             {
               alert( "Request failed: " + errorThrown );
             }
                    })
                                   });
</script>

$(窗口).keydown(函数(事件){
var req=$.ajax({
url:“testajaxpost.php”,
类型:“POST”,
数据:{'pressed':event.keyCode},
错误:函数(jqXHR、textStatus、errorshown)
{
警报(“请求失败:+错误抛出”);
}
})
});
它的行为非常奇怪,我看不出有什么不对。我几乎没有网络编程的经验,所以可能有一些重大的、明显的错误我错过了