【发布时间】:2012-01-11 03:33:40
【问题描述】:
我最近在尝试学习如何使用 Visual C# 进行异步接收时遇到了一些麻烦。我有一个基于控制台的服务器程序,它从客户端接收数据,然后将其发回。我的问题在客户端。它必须每 100 毫秒左右向服务器发送一次数据,然后再接收。
问题是恢复它,因为我不能让程序停止并等待数据。这是到目前为止的样子...
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 16487);
TcpClient client = new TcpClient();
bool blnOnOFF;
private void SendServerData()
{
string strData = "TEST DATA";
NetworkStream clientStream = client.GetStream();
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] buffer = encoder.GetBytes(strData);
clientStream.Write(buffer, 0, buffer.Length);
clientStream.Flush();
}
// Ticks Every 100ms
private void tmrDataTransfer_Tick(object sender, EventArgs e)
{
SendServerData();
}
private void btnStart(object sender, EventArgs e)
{
if (blnOnOFF == false)
{
tmrDataTransfer.Start();
blnOnOFF = true;
}
else
{
tmrDataTransfer.Stop();
blnOnOFF = false;
}
}
如您所见,它现在所做的只是发送“测试数据”。如果有另一种接收数据的方式比异步更简单,请告诉我,我也想学习如何为未来的项目执行此操作。
先谢谢了。
编辑:添加客户对不起我忘了它
【问题讨论】:
-
什么是
client?您的代码不完整。 -
TcpClient 客户端 = new TcpClient();
标签: c# sockets asynchronous client