나는 서버 클라이언트 응용 프로그램을 가지고 있으며 "로그인 실패 코드"와 함께 이상한 속도 범프를 쳤습니다.자바 소켓 보내지 않은 바이트
로그인의 유효성을 설명하는 코드를 보내고 필요한 경우 OutputStream
을 닫으십시오. 이 문제는 클라이언트가 응답을 읽을 수 있기 전에 소켓이 닫혀있는 것으로 보입니다. 이는 무작위 적으로 발생하는 일시적인 오류로 이어질 수 있습니다.
setSoLinger()
(등)을 사용하는 것 외에 클라이언트에서 마지막 바이트 (또는 그 이상)를 읽었는지 확인하는 방법이 있습니까?
감사합니다. 자바에서
['close()'] (http://docs.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html#close()) 또는 ['shutdownOutput()'] (http://docs.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html#shutdownOutput())을 사용하여 스트림을 닫으시겠습니까? – sarnold
'이 문제는 클라이언트가 응답을 읽을 수 있기 전에 소켓이 닫히기 때문에 무작위로 발생하고 숨겨진 오류가 발생합니다.' 설명해주십시오. 대개 네트워크에 장애가 발생하지 않는 한 보내는 모든 것은 손상되지 않은 상태로 수신됩니다. – EJP