2010-07-07 3 views
1

현재 소켓을 사용 중입니다.
아주 작은 플래시 SWF 파일을 사용하여 실제 소켓 연결을 설정하는 jquery 스크립트가 있습니다. 서버로서 저는 파이썬을 사용하고 싶습니다.데이터를받은 후 파이썬 소켓 서버가 깨져서

모든 것이 작동하지만 서버에 정보를 한 번만 보낼 수 있습니다.

서버용 파이썬 코드 2 개를 사용해 보았습니다.
둘 다 같은 문제가 있기 때문에 문제는 여기에 없습니다.

# 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 

또는이 하나 : 나는 데이터의 조각을 보내기 http://devpro.it/xmlsocket/
사용하는 클라이언트 측에

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() 

가 도착

xmls.send('some text'); 

을 실행하는 것만 큼 간단하지만, 그 이후 작동을 멈 춥니 다.

해결책을 아는 사람이 있습니까? 또는 더 나은 javascript/swf 조합을 ​​사용할 수 있습니까? 플래시 및 파이썬 사이의 통신을위한

+1

나는 'twisted'를 살펴볼 것을 권한다. – Escualo

답변

2

연결을 종료 한 후에 다시 '수신 대기'해야한다고 생각합니다. 또한 소켓은 tcp 사양에 따라 데이터를 전달합니다. 하나의 소켓 읽기에서 전송 된 모든 데이터를 읽을 수는 없습니다. 여러 번 읽고 여러 가지를 수행하고 완전한 '메시지'를 조합하는 것을 볼 수 없습니다.

+1

실제로. 서버의 예는 바로 그 것입니다 : 매우 기본적인 예입니다. 나는 루프를 보았고 영원히 계속 될 것이라고 생각했다. 한 번의 데이터 버스트를 종료하기 위해 만들어졌습니다. 다음은 파이썬 서버에 대한 훌륭한 튜토리얼입니다. 스레딩도 포함되어 있습니다 : http://ilab.cs.byu.edu/python/threadingmodule.html – skerit

1

, 내가 사용 : 당신은 어느 소켓 서버, 또는 더 나은, 작은 장고 응용 프로그램을 설정할 수 있습니다

http://pyamf.org/ 

. 그런 다음 원할 경우 안전한 인증, 토큰, 쿠키 및 강력한 입력을 할 수 있습니다.

관련 문제