TcpListener 를 이용하여 간단한 Client/Server 관련 통신을 하려고 합니다.
서버 관련 코딩을 먼저 진행하고 테스트 중인데 클라이언트에서 메시지롤 보내면 NetworkStream 의 객체를 StreamReader 로 맵핑후 들어온 데이타를 읽으려고 합니다.
그런데 데이타가 들어온걸 인지해서 reader.ReadLine() 함수까지는 실행을 하는데 이 함수안에서 빠져 나오지 못하고 있습니다. 클라이언트 에서 접속을 해지하면 그제야 ReadLine() 함수에서 빠져 나와 데이타를 String 변수에 저장을 합니다.
서버쪽에서 클라이언트 쪽으로 전송은 잘 됩니다.
인터넷에서 관련된 코드를 찾아 보아도 다들 비슷하게 코딩을 해 놓았던데 왜 제가 만든 코드에서만 이런 동작을 하는지 모르겠습니다.
private void ReceiveClientData()
{
string receiveData;
while (true)
{
if (networkstream!.DataAvailable)
{
receiveData = streamReader.ReadLine(); <= 이 부분에서 빠져 나오지를 못하다가 클라인트 접속이 끊어지면 그제야 빠져 나와서 들어온 데이타를 처리 합니다.
if (OnDataReceived is not null)
{
OnDataReceived(this, new ServerEventArgs(receiveData));
}
}
}
}
어떤 문제가 있는 것일까요??