2014-01-06 3 views
0

나는 스레드와 TCP 프로토콜을 사용하여 클라이언트에서 서버로 간단한 채팅 메시지를 보냈습니다. 하지만 wireshark를 사용하여 패킷의 세부 사항을 볼 때 내 데이터가 예를 들어 나눠져있는 것을 보았습니다. 내 MSS = 1460, 780 바이트의 데이터를 보내는 경우 몇 바이트가 첫 번째 세그먼트로 들어가고 나머지는 두 번째. 패킷에 들어가는 바이트 수는 임의적입니다. 내 네트워크의 전체 용량을 활용하려면 어떻게해야합니까? 처음에는 내가 DataInputStream/OpStream을 사용하고 있었기 때문에 이것을 얻었을 것이라고 생각했지만, 그것을 bufferedreader로 변경했을 때 문제는 그대로 남습니다. 제발 도와주세요 !!소켓 프로그래밍을 사용하여 자바

+0

@jkbkot UDP는이 질문과 전혀 관련이 없습니다. 특히 TCP에 관한 것입니다. – EJP

+0

정말입니까? 단편화는 TCP 아래에서 처리됩니다. TCP는 연속적인 데이터 스트림을 제공합니다. 패킷을 처리 할 필요가 없습니다. 링크 된 질문 (그리고 많은 다른 것들)에서 응답합니다. UDP를 사용하면 파편이 아닌 전체 패킷을 받게됩니다. 당신은 전혀받지 못할 수도 있습니다. –

답변

-1

BufferedOutputStream 또는 BufferedWriter을 사용하여 보내고 실제로 필요한 경우에만 플러시하십시오. 읽기 전에.

+0

나는 프린트 라이저를 사용하여 서버에 메시지를 인쇄했습니다. – user3164695

+0

'서버에서 메시지를 인쇄'하는 데는 완전히 완전히 관련이 없습니다. * 전송할 때 사용하고 싶다고 말하고 있습니다. * 의견을 말하기 전에 실제로 쓴 내용을 읽으십시오. – EJP

관련 문제