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游戏立即结束。为什么?谢谢你的建议。
答
有时候,当你正在处理这样的事情异步,应用程序不乱扔,即使它们发生适当的例外。
您是否试过单步执行代码以查看它何时实际关闭?
我的赌注是在Sended-method。尝试改变它像这样,看到任何例外(它拼写为“发送”,顺便说一句):
private void Sended(IAsyncResult res)
{
try
{
NetworkStream clientStream = client.GetStream();
clientStream.EndWrite(res);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
您的问题太含糊。你问你的XNA游戏,但你没有提供与游戏本身相关的代码。我最好的猜测是 - 当你收到/发送一个请求时,有一个未处理的异常抛出。 –
@Nik异常不会抛出,Visual Studio应该能够检测到它,或者我错了? –
这取决于你的设置 –