2010-06-06 3 views
0

누군가가 서버를 PC로 사용하고 클라이언트를 클라이언트로 사용하여 에뮬레이터를 사용하여 tcp 클라이언트 서버 응용 프로그램을 만들려고합니까?에뮬레이터 TCP 패킷 크기

내가 문제가 조금있어 어디 유일한 서버에 클라이언트 (전화)에서, 관계없이 실제로 전송하는 방법이 많은 중 하나의 패킷의 데이터 즉 1491 바이트를 전송 (PC)

그것이 MTU (프로토콜에서 지원하는 최대 패킷 크기)에 관련된 것처럼

감사

제임스

+0

tcp는 패킷을 제공하지 않으므로 스트림입니다. 자신 만의 메시지를 직접 처리해야합니다. 하나의 발신 통화는 수신을 위해 여러 개의 recv 전화를받을 수 있으며 그 반대의 경우도 가능합니다. 제대로 처리하고 있습니까? – nos

답변

0

1491 보입니다. 이더넷 MTU는 1500입니다.

+0

그래, 그게 정확히 뭔지는 모르겠지만 서버가 오직 하나의 패킷 만 수신한다는 것은 사실이다. 당신이 시도하고 보내면 클라이언트에서 서버로 2k의 가치가있는 데이터를 얻을 수 있다고 말하는 것은 그것을 모두 얻지 못할 것이라는 것을 의미합니다. 나는 내 전화기에 응용 프로그램을 설치하면 제대로 작동하기 때문에이 에뮬레이터 문제가 있음을 알고 있습니다. 그러나 물리적 장치에서만 개발하는 것은 약간의 고통입니다. 건배 James – jpspringall

+0

@jpspringall 어떻게 1 패킷 만 받았다고 결정하셨습니까? 귀하의 코드 또는 네트워크를 스니핑하여? – nos

+0

내 코드에서 에뮬레이터에서 PC로 전송하는 방법이 아무리 많아도 1491 바이트 만 가져옵니다. 나는 그것이 에뮬레이터 설정에서 어딘가에 설정되었다고 추정하고 있었지만, 아마도 같지 않다고 생각한다. – jpspringall