내 응용 프로그램이 NetworkStream과 StreamWriter를 열어 서비스에 HL7 메시지를 보냈습니다. 이 서비스는 HL7 메시지를 수신하고 항상 확인 응답을 보냅니다. 나는 다음과 같은 문제가 : HL7 - 메시지 (작동, 내가 그것을 테스트 한 후) 서비스에서 승인을 받기 위해 s StreamReader 사용하려고하지만 인수 예외 "데이터 스트림을 읽을 수 없습니다." 내 코드를 디버깅하고 연결이 StreamWriter의 using-block 뒤에 닫히고 따라서 StreamReader에 대해 읽을 내용이 없음을 알았습니다. 여기 NetworkStream의 연결이 자동으로 닫힙니다.
내 코드입니다 :public static void SendMessage(string message, string ip, int port)
{
string acknowledge;
try
{
using (TcpClient client = new TcpClient(ip, port))
{
using (NetworkStream networkStream = client.GetStream())
{
using (StreamWriter clientStreamWriter = new StreamWriter(networkStream))
{
clientStreamWriter.Write(message);
}
using (StreamReader clientStreamReader = new StreamReader(networkStream))
{
acknowledge = clientStreamReader.ReadToEnd();
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Connection Problems: " + ex.ToString());
}
}
어떻게 내가 클라이언트가 HL7-메시지를받은 후 다시 전송 승인을 읽을 수 있기 때문에, 폐쇄에서 연결을 중지 할 수 있습니다?
가능한 중복 http://stackoverflow.com/questions/2666888/is-there-any-way-to-close-a -streamwriter-closing-its-basestream) –
이것은 많은 도움이됩니다, 감사합니다! –