2013-06-30 5 views
2

을 보낸 후 XNA 게임 창을 닫습니다 :C#하여 TcpClient 데이터 내가 같이 연결하여 TcpClient 클래스를 사용하고 데이터를 전송하기 위해 XNA 4. 멀티 플레이어 게임을 작성하려는

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 게임에 대해 물어 보지만 게임 자체와 관련된 코드는 제공하지 않습니다. 내 최고의 추측은 - 당신이 요청을 받거나 보낼 때 어딘가에서 처리되지 않은 예외가 throw됩니다. –

+0

@Nik 예외가 발생하지 않습니다. Visual Studio에서이를 감지 할 수 있어야합니까, 아니면 틀렸습니까? –

+0

그것은 당신의 설정에 따라 다릅니다 –

답변

0

경우에 따라 이러한 비동기 작업을 처리 할 때 응용 프로그램이 발생하더라도 적절한 예외가 발생하지 않습니다.

코드가 실제로 닫히는 지 확인하려면 코드를 실행 해 보았습니까?

내기는 Sended-method에 있습니다. 예외를보기 위해 다음과 같이 변경해보십시오 ('보낸', 철자).

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