こんにちは、クライアントからサーバーに文字列を送信しようとしています。動作しないため、同じマシンでデータを送信および受信して、以下の機能をテストしようとしています。
私が遭遇した問題は、_serverStream.DataAvailable
in がReceiveData()
常に false を返すことでした。両方の機能が正しく動作していることを確認するにはどうすればよいですか? _serverStream
データの送受信ができていませんか?
public void SendData(string dataToSend)
{
if (string.IsNullOrEmpty(dataToSend))
return;
_serverStream = _serverClient.GetStream();
byte[] outStream = Encoding.UTF8.GetBytes(dataToSend);
_serverStream.Write(outStream, 0, outStream.Length);
//_serverStream.Flush();
}
public string ReceiveData()
{
StringBuilder message = new StringBuilder();
_serverStream = _serverClient.GetStream();
_serverStream.ReadTimeout = 100;
while (true)
{
if (_serverStream.DataAvailable)
{
int read = _serverStream.ReadByte();
if (read > 0)
{
message.Append((char)read);
}
else
{
break;
}
}
else if (message.ToString().Length > 0)
{
break;
}
}
return message.ToString();
}
以下のようにSendData()
andを呼び出します。ReceiveData()
tcpclient.SendData(username);
string test = tcpclient.ReceiveData();
MessageBox.Show(test);