我一直在嘗試學習如何使用Visual C#執行異步接收時遇到了一些麻煩。我有一個基於控制檯的服務器程序,它接收來自客戶端的數據,然後將其發回。我的問題是在客戶端。它必須每100毫秒發送一次數據到服務器,然後再接收它。C#異步接收
問題在於讓它回來,因爲我不能讓程序停止並等待數據。下面是它看起來像那麼遠,
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;
}
}
正如你所看到的,它現在正在發送「試驗數據」。如果還有另一種方式來接收比異步更簡單的數據,請讓我知道,同時我想知道如何爲未來的項目做到這一點。
感謝先進。
編輯:添加客戶端對不起,我忘了
什麼是'客戶端'?你的代碼不完整。 – Amy
TcpClient client = new TcpClient(); <---對不起,我遺漏了它 – Dusty