Avatar billede esj123 Nybegynder
05. juli 2011 - 09:56 Der er 3 kommentarer og
1 løsning

Simple UDP coamnder

Jeg er ved at lave et simpelt tool der kan sende og modtager UDP pakker, det virker også fint men når jeg kalder UdpClient.receive og der ikke er noget at modtage så står den bare og hænger der og jeg skal terminere. Se code hvad gør jeg forkert.


  public partial class Form1 : Form
    {
        byte[] data = new byte[1024];
        string stringdata;
        UdpClient server;
        IPEndPoint tsender;

        public Form1()
        {
            InitializeComponent();
            server = new UdpClient("192.168.1.101", 1200);
            tsender = new IPEndPoint(IPAddress.Any, 0);
     

        }

  private void timer1_Tick(object sender, EventArgs e)
        {
   
        try{
//Her hænger den i næste kald såfremt der ikke er UDP pakker
      data = server.Receive(ref tsender);
      stringdata = Encoding.ASCII.GetString(data, 0, data.Length);
            TextBoxLog.Items.Add("RX: " + stringdata);

            }
            catch (SocketException er)
            {
                if(er.ErrorCode != 10054)
                {
         
                }
            }

        }
Avatar billede Spotgun Seniormester
05. juli 2011 - 11:03 #1
Receive er et "blocking call", dvs. den venter på data og fortsætter ikke før den har modtaget noget.

Du kan evt. kigge på en asynkron løsning i stedet for, hvis det passer bedre til dit scenarie. Se her for inspiration: http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.beginreceive.aspx
Avatar billede Syska Mester
05. juli 2011 - 23:51 #2
Kig på: http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.available.aspx

Den brude antive om der er noget data at læse ... hvis der ikke er, så er der ingen grund til at kalde receive.

mvh
Avatar billede esj123 Nybegynder
06. juli 2011 - 07:35 #3
Ja tak det var det lige det jeg søgte buzzz tak for det læg et svar.

mvh
esj
Avatar billede Syska Mester
06. juli 2011 - 13:26 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester