2010-03-31 3 views
2

클라이언트 응용 프로그램에서 UDP Sokckts를 사용합니다..NET의 UDP 소켓 클라이언트

SendIP = new IPEndPoint(IPAddress.Parse(IP), port); 
ReceiveIP = (EndPoint)(new IPEndPoint(IPAddress.Any, 0)); 
socket = new Socket(
    AddressFamily.InterNetwork, 
    SocketType.Dgram, 
    ProtocolType.Udp); 
socket.Bind(ReceiveIP); 

받을 수 (동안 (사실을)) : 는 여기에 몇 가지 코드 조각입니다 I가 무한 동안 일을하고

byte[] data = new byte[BUFFERSIZE]; 
int receivedDataLength = socket.ReceiveFrom(data, ref ReceiveIP); 
string s= Encoding.ASCII.GetString(data, 0, receivedDataLength); 

하여 수행 될 수있는 다른 일이있다, 수신 그러나 아무 것도 수신되지 않더라도 실제로 사용할 수있는 데이터가 있는지 확인한 다음 다른 데이터를 기다리는 중을 확인하고 싶습니다. 현재 수신 방법은 서버가 메시지를 보낼 때까지 대기합니다.

+0

질문이 표시되지 않습니까? – sblom

+0

질문을 편집하여 질문하십시오. –

답변

2

ReceiveFrom()을 호출하기 전에 대기중인 데이터가 있는지 확인하려면 을 사용할 수 있습니다. 그러나 이상적으로는 BeginReceiveFrom()과 비동기 친구를 사용하여 다른 스레드에 대한 입력 처리를 고려해야합니다.