我正在涉足插座 我有一个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组合?
答案 0 :(得分:2)
我认为你在关闭连接后需要再次'听'。 此外,套接字根据tcp规范提供数据。您不能保证在一个套接字读取中发送所有数据。我看不到执行多次读取和组装完整的“消息”
答案 1 :(得分:1)
对于flash和python之间的通信,我使用:
http://pyamf.org/
您可以设置一个套接字服务器,或者更好的是一个小型django应用程序。然后,如果需要,您可以拥有安全的身份验证,令牌,Cookie和强类型。