Сервер сокетов Python вылетает после получения данных - PullRequest
1 голос
/ 07 июля 2010

В настоящее время я работаю с сокетами.
У меня есть скрипт jquery, который использует очень маленький флэш-файл 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 ]

2 голосов
/ 07 июля 2010

Я думаю, вам нужно снова «слушать» после закрытия соединения.Кроме того, сокеты доставляют данные в соответствии со спецификациями TCP.Вы не гарантированно получите все данные, отправленные в одном сокете, для чтения.Я не вижу ничего, чтобы выполнить несколько чтений и собрать полное «сообщение»

1 голос
/ 07 июля 2010

Для связи между flash и python я использую:

http://pyamf.org/

Вы можете настроить сервер сокетов или, что еще лучше, небольшое приложение django. Тогда вы можете иметь безопасную аутентификацию, токены, файлы cookie и строгую типизацию, если хотите.

...