2010-06-09 2 views
1

LAN을 통해 파일을 전송하는 중입니다 (JxtaSocket에 대해 들었을 경우에 대비해 사용) :java.net.SocketTimeoutException 무엇입니까 : 원격 연결에서 닫기 확인을받지 못했습니다?

java.net.SocketTimeoutException : 원격 연결에서 close ack를 수신하지 못했습니다. at net.jxta.socket.JxtaSocket.close (JxtaSocket.java:1046)

나는 이것이 처음부터 일어날 이유가 무엇인지 알고 싶습니다. 하나의 파일 (2.9MB)을 보낸 후 정기적으로이 예외가 발생합니다. 다른 모든 파일은 1MB 미만이고 정상적으로 작동합니다.

반면에 JXTA의 잘못 일 수 있습니다.

모든 응답이 높게 평가됩니다!

+0

원격 엔드 포인트 소프트웨어 (클라이언트)도 사용자가 작성합니까? 아니면 파일 전송을 위해 일부 프로토콜을 사용하고 있습니까? –

+0

모든 것이 저에게 쓰여지고 프로토콜은 고전적인 TCP입니다 (JXTA 구문 사용). –

답변

0

TCP는 프로토콜입니다.

클라이언트의 연결이 종료 될 때 요청한 쪽 (처음에 닫으려고 한 쪽)이 상대방으로부터의 확인 응답을 기다려야하므로 원격 쪽에서 해당 쪽을 알고 있는지 확인해야합니다. 우리는 연결을 닫고 있습니다. 유감스럽게도 종료 핸드 셰이크가 제대로 발생하지 않는 경우가 종종 있습니다 (때로는 클라이언트가 핸드 셰이크를 제대로 통과하지 않고 닫는 경우가 많습니다). 실제로 모든 중요한 의사 소통이 이루어지기 때문에 이것은 중요하지 않습니다.

너무 짧아서, 당신이 여기에서 볼 가능성이 가장 큰 것은 오작동하는 클라이언트이지만, 나는 그것에 대해 걱정하지 않을 것입니다.

위키 백과는 JXTA 커뮤니티의 일부 회원들이 릴리스 2.5과 같은 문제를 경험 한 TCP connection termination protocol

1

의 좋은 토론을 가지고 있지만 2.6 및 2.7에서 사라졌다. 이것은 설명/해결할 수 있습니다.

관련 문제