[英]C# StreamWriter / NetworkStream / TcpClient / Not sending data after idle for +5 min
[英]C# TcpClient closes XNA game window after sending data
我想在XNA 4中編寫多人游戲。對於發送數據,我使用的是TcpClient類,其連接方式如下:
try{
client.Connect(serverEndPoint);
}
catch (Exception ex){
Console.WriteLine("not connected");
return;
}
if (!client.Connected) return;
NetworkStream stream = client.GetStream();
stream.BeginRead(buf, 0, 1024, new AsyncCallback(PrijmiData), null);
當我想用他的方法發送數據時:
private void Send(byte[] co){
NetworkStream clientStream = client.GetStream();
clientStream.BeginWrite(co, 0, co.Length, new AsyncCallback(Sended), null);
}
private void Sended(IAsyncResult res){
NetworkStream clientStream = client.GetStream();
clientStream.EndWrite(res);
}
服務器收到數據,但XNA游戲立即結束。 為什么? 謝謝你的建議。
有時,當您處理諸如此類的異步事件時,即使發生異常,應用程序也不會拋出適當的異常。
您是否嘗試單步執行代碼以查看其實際關閉時間?
我的賭注應該是Sended方法。 嘗試像這樣更改它,以查看任何異常(順便說一下,它的拼寫為“已發送”):
private void Sended(IAsyncResult res)
{
try
{
NetworkStream clientStream = client.GetStream();
clientStream.EndWrite(res);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.