簡體   English   中英

C#TcpClient發送數據后關閉XNA游戲窗口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM