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