2012-02-07 1 views
1

마이크로 컨트롤러 16F877A를 프로그래밍하기 위해 플로우 코드 기술을 사용하고 있습니다. flowcode에서플로우 코드 UDP를 전송했지만 서버에서 갑자기 읽지 않았습니다.

내가 문제가 서버가 그 패킷을 수신하지 않을 것입니다 포트 23456.

에서 수신 서버에 3 바이트 UDP 패킷을 전송하고 있습니다. 추적을 위해 wireshark를 사용했고 3 바이트와 그 내용을 감지 할 수있었습니다.

아래의 C#을

const int port_number=23456; 
TcpListener server=new TcpListener(IPAddress.Any ,port_number); 
Socket soc; 
NetworkStream s; 
bool exit=false; 
Thread mythread; 

스레드 코드를 사용하여 내 서버 코드

void method() 
    { 
     try 
     { 
      server.Start(); 
      soc = server.AcceptSocket(); 
      s = new NetworkStream(soc); 
      StreamReader sr = new StreamReader(s); 
      textBox1.Text += sr.ReadLine(); 
      if(soc.Connected==true && exit==false) 
      method();     
     } 
     catch(Exception es) 
     { 
      Console.WriteLine("{0}",es.Message); 
     } 

    } 

당신은 내가 그 3 바이트를 읽고이를 처리 할 수 ​​아무것도 변경할 필요가 있다고 생각합니까 여기에있다.

정말 감사드립니다.

답변

2

TcpListening을 사용하고 있지만 UDP 패킷을 보내고 있습니까? UDPClient 클래스를 사용해보십시오 : http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.aspx

조금 더 자세히 설명해주십시오. TCP 및 UDP는 소켓 레벨에서 두 개의 별도 프로토콜이기 때문에 TCP 클라이언트는 UDP 패킷을 수신하지 않습니다. 소켓은 TCP 연결을 기다리고 있고, UDP 데이터 그램을 받고, 청취자가없는 것을보고, 버립니다.

+0

메모와 아래 링크를 사용하여 문제를 성공적으로 해결할 수있었습니다. http://social.msdn.microsoft.com/forums/en-US/netfxnetcom/thread/92846ccb-fad3-469a-baf7 -bb153ce2d82b/ – bogha

+0

기꺼이 도와 드리겠습니다! – grieve

관련 문제