你好,我正尝试从客户端发送一个字符串到服务器。但它无法工作,所以我正在尝试通过在同一台机器上发送和接收数据来测试下面的功能。
我遇到的问题是,在ReceiveData()
中_serverStream.DataAvailable
总是返回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()
和ReceiveData()
方法:
tcpclient.SendData(username);
string test = tcpclient.ReceiveData();
MessageBox.Show(test);