C#TcpClient的发送数据

问题描述:

我想写多玩家游戏的XNA 4.发送数据我使用的连接这样的TcpClient类后关闭XNA游戏窗口:C#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游戏立即结束。为什么?谢谢你的建议。

+0

您的问题太含糊。你问你的XNA游戏,但你没有提供与游戏本身相关的代码。我最好的猜测是 - 当你收到/发送一个请求时,有一个未处理的异常抛出。 –

+0

@Nik异常不会抛出,Visual Studio应该能够检测到它,或者我错了? –

+0

这取决于你的设置 –

有时候,当你正在处理这样的事情异步,应用程序不乱扔,即使它们发生适当的例外。

您是否试过单步执行代码以查看它何时实际关闭?

我的赌注是在Sended-method。尝试改变它像这样,看到任何例外(它拼写为“发送”,顺便说一句):

private void Sended(IAsyncResult res) 
{ 
    try 
    { 
     NetworkStream clientStream = client.GetStream(); 
     clientStream.EndWrite(res); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex); 
    } 
}