열려있는 TCP 연결이 있고 NetworkStream.BeginRead()를 사용하여 읽었습니다. 한쪽 끝에서 연결이 닫히면 콜백이 호출되고 스트림 객체는 쓸모가 없습니다. 문서가 말한 것처럼 EndRead()는이 경우에 따라 IOException 또는 ObjectDisposedException을 던집니다.. NET NetworkStream을 닫았습니다. 모든 데이터를 읽는 방법은 무엇입니까?
내가 마지막으로 성공한 EndRead (및 다시 BegingRead)와 연결 해제 사이에 누락 된 데이터가 없다는 보장이 있습니까? 그렇지 않은 경우 연결이 끝날 때를 대비하여 연결을 끊을 때 수동으로 NetworkStream.Read()를 실행하여 읽지 않은 상태로 두지 않아야합니까?
우 - 후! 나는 맞는 물건을 안다. 그러나 절대적으로 아무도 다른 사람을 확인하거나 부인할만큼 충분하지 않다! 어, 잠깐, 왜 내가 이걸로 행복하니? – Task
아마도이 (매우 관련된) 질문에 대한 답이되기를 희망합니다. EndRead가 End bytes를 호출하는 유일한 방법이 'BeginRead'에 대한 콜백에 있다면, EndRead는 0 바이트를 읽을 수 있습니다. 실행하려면 데이터를 전송해야합니까? 방금 제로 바이트 응답을 보내야합니까? – Brandon
글쎄, 이제는 스트림에서 읽는 대신에 글쓰기 *에 대해 이야기하고있는 것입니다. 그것은 다소 다릅니다. 연결할 수있는 공개 질문이 있으십니까? 본질적으로 0 바이트를 특별히 쓸 필요는 없으며 응답을 완료하면됩니다. – Task