2014-02-21 7 views
0

그러나 스트리밍되기 때문에 TCP가 패킷을 잃을 수 없다는 것을 알고 있습니다. 5 개의 "52"패킷이있는 스트림을 nodejs와 함께 보내려고합니다. 형식은 (1,52,1,52,1,52,1,52,1,52)이어야합니다. 여기서 1은 패킷의 길이입니다. 동일한 PC에서 C# console 응용 프로그램과 동일한 PC에서 동일한 스트림을 수신합니다. 로컬 네트워크에 Java 앱이 설치된 Android 기기. "1,52,1,52,1,52,1,52,1,52"TCP 스트림의 데이터 손실


하지만 자바의 출력은 다음과 같습니다 :

C 번호 출력은
"1,52,1 , 52,52,1,52,1,52 "

Nodejs 코드 :

b = new Buffer(1); 
b.writeInt8(1,0); 
this.sock.write(b); 
this.sock.write(String.fromCharCode(event)); //event == 52 

자바 코드 :

while(true) 
{ 
    int a = in.read(); //in is an instance of InputStream 
    if(a!= -1)Log.v(getTag(),""+a); 
} 

누구에게 무슨 문제가 있는지 알고 있습니까?
미리 감사드립니다.

/업데이트 : socket.bytesWritten은 서버 측에 없으므로 10을 반환합니다.

+0

'sock' ('this.sock'의) 객체 유형은 무엇입니까? –

+0

서버와 연결될 때 수신 된 소켓 객체입니다. net.createServer (function (socket)) –

답변

1

확인. 그건 내 잘못 이었어. 내부 Java 응용 프로그램 연결이 여전히 살아 있는지 확인하려면 한 바이트 읽는 손실 된 연결 처리기를했습니다, 그것은 스트림에서 가져 가고있었습니다.