接收数据后,Python套接字服务器会崩溃

时间:2010-07-07 19:16:33

标签: javascript python flash sockets

我正在涉足插座 我有一个jquery脚本,它使用一个非常小的flash swf文件来建立一个真正的套接字连接。作为服务器,我想使用python。

一切正常,但我只能向服务器发送一次信息。

我已经为服务器尝试了2条python代码 我想因为他们都有同样的问题,问题不在这里。

# TCP server example
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", 2000))
server_socket.listen(5)

print "TCPServer Waiting for client on port 2000"

while 1:
        client_socket, address = server_socket.accept()
        print "I got a connection from ", address
        while 1:
                data = client_socket.recv(512)
                print "RECIEVED:" , data

或者这个:

import socket
mySocket = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
mySocket.bind ( ( '', 2000 ) )
mySocket.listen ( 1 )
while True:
   channel, details = mySocket.accept()
   print 'We have opened a connection with', details
   print channel.recv ( 100 )
   channel.close()

在客户端,我使用http://devpro.it/xmlsocket/
发送一段数据就像执行

一样简单
xmls.send('some text');

哪个到了,但之后就停止了工作。

有谁知道解决方案? 或者我可以使用更好的javascript / swf组合?

2 个答案:

答案 0 :(得分:2)

我认为你在关闭连接后需要再次'听'。 此外,套接字根据tcp规范提供数据。您不能保证在一个套接字读取中发送所有数据。我看不到执行多次读取和组装完整的“消息”

答案 1 :(得分:1)

对于flash和python之间的通信,我使用:

http://pyamf.org/

您可以设置一个套接字服务器,或者更好的是一个小型django应用程序。然后,如果需要,您可以拥有安全的身份验证,令牌,Cookie和强类型。