2012-01-30 2 views
0

OpenFramework 소켓 서버와 AS3 TCP 클라이언트 소켓 연결이 있습니다. 때때로 클라이언트는 1 초에 약 20 개의 메시지를 전송하지만 서버는 1 또는 2 개의 메시지를 수신하지 않습니다.AS3 TCP 소켓 손실 패키지

분실 한 패키지없이 내 메시지를 보낼 보안 방법이 있는지 알고있는 사람이 있습니까? 내가 잘못하고 있니?

내 코드는 다음과 같습니다

socket = new Socket(); 
socket.addEventListener(Event.CONNECT, connectHandler); 
socket.addEventListener(ProgressEvent.SOCKET_DATA, dataHandler); 

public function send(m:String):void 
{ 
    socket.writeUTFBytes(m); 
    socket.flush(); 
} 
+0

서버에서 메시지를받지 못하셨습니까? 네트워크는 작은 메시지를 하나의 패킷으로 결합하고 큰 메시지를 분할합니다. 어쩌면 끝까지 읽지 않거나 전체 패킷이 들어올 때까지 기다릴 수 있습니까? –

+0

정책 파일을 처리하는 코드는 무엇입니까? –

+0

분명히 틀린 일을하고 계시지 않습니까? wireshark 같은 것을 사용하여 트래픽을 모니터링 해 보셨습니까? 낮은 수준의 네트워크 통신에 있어서는 그 종류의 도구는 매우 중요합니다. Adobe docs에 따르면 Socket 클래스는 TCP 채널을 사용하여 아무 것도 삭제하지 않아야합니다 (UDP 삭제 된 메시지가 의미가 있지만 TCP의 상단에는 메시지의 신뢰할 수있는 전송을 보장하지 않는 경우). http : // help.adobe.com/ko_KR/as3/dev/WSb2ba3b1aad8a27b0-181c51321220efd9d1c-8000.html – shaunhusain

답변

0

대신이 하나를 시도;

socket.writeUTFBytes(m + String.fromCharCode(0)); 
socket.flush();