473,405 Members | 2,210 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,405 software developers and data experts.

try

1
Hallo,
I am developing an application where there is a source which sends UDP datagrams at a constant Interval (2 datagrams per second). I am receiving these datagrams in the following code:

Expand|Select|Wrap|Line Numbers
  1. EP = New IPEndPoint(IPAddress.Any, clsUDP.nListenOnPort)  
  2.  
  3. (' clsUDP.nListenOnPort=6466)
  4.  
  5. UDPInput = New UdpClient(EP)
  6. While clsMisc.ListenforUDP
  7.   Try
  8.  
  9. byt = UDPInput.Receive(EP)
  10. ..................
  11.  Catch ex As Exception
  12.         MessageBox.Show(ex.ToString)
  13.   End Try
  14. End While
  15.  
  16.  UDPInput.Close()
  17.  
  18. UDPInput = Nothing
  19. EP = Nothing
the flag clsMisc.ListenforUDP is true as long as the application runs. This is set to false when an user Logs off.
This is working properly when a user logs in and logs off three times consecutively. But when an user logs in fourth time. I found out by debugging that the program hangs
after
byt = UDPInput.Receive(EP)
this line. I have also tried with asynchronous connection (Beginreceive and end receive) and also with
UDPInput.Client.SetSocketOption(SocketOptionLevel. Socket, SocketOptionName.ReceiveBuffer, 0) to flush the buffer before I read the byt but in vain. It is always the fourh time that the problem arises.

I am trying this to solve for the last 3 days without success. I shall be grateful if somebody helps me.
Thanks.
Roy
Jan 5 '10 #1
2 1440
tlhintoq
3,525 Expert 2GB
TIP: When you are writing your question, there is a button on the tool bar that wraps the [code] tags around your copy/pasted code. It helps a bunch. Its the button with a '#' on it. More on tags. They're cool. Check'em out.
Jan 5 '10 #2
tlhintoq
3,525 Expert 2GB
Let me be clear: I do C#, not VB so some code translation on your part may be required.

Your code logic seems to be quite close to my own for UDP datagrams
Expand|Select|Wrap|Line Numbers
  1.         public void StartListener()
  2.         {
  3.             IPAddress IPlisten = new IPAddress(new byte[] { 127, 0, 0, 1 });
  4.             if(ListenIP != null) IPAddress.TryParse(ListenIP, out IPlisten);
  5.             IPEndPoint groupEP = new IPEndPoint(IPlisten, ListenPort);
  6.             done = false;
  7.  
  8.             try
  9.             {
  10.                 while (!done)
  11.                 {
  12.                     Console.WriteLine("Waiting for broadcast");
  13.                     byte[] bytes = listener.Receive(ref groupEP);
  14.                     ReceivedMsg(bytes); // Raise custom event with received bytes
  15.                 }
  16.             }
  17.             catch (Exception e)
  18.             {
  19.                 Console.WriteLine(e.ToString());
  20.             }
  21.             finally
  22.             {
  23.                 if (listener != null) listener.Close();
  24.             }
  25.         }
  26.  
My line 13 would correspond to your line 9 where the received packet is assigned to a byte array.

I'm not sure what you mean by "hangs up after this line". It is the nature of the .Receive method to stop and wait for an incoming packet.

I run my UDP Listener on its own thread because it halts execution. When a packet is received I then raise a custom event ("ReceivedMsg") with the byte array that came in. Then the loop (lines 10-15) iterates and the .Receive again halts all execution until another packet is received.

I hope this helps.
Jan 5 '10 #3

Sign in to post your reply or Sign up for a free account.

Similar topics

3
by: William C. White | last post by:
Does anyone know of a way to use PHP /w Authorize.net AIM without using cURL? Our website is hosted on a shared drive and the webhost company doesn't installed additional software (such as cURL)...
2
by: Albert Ahtenberg | last post by:
Hello, I don't know if it is only me but I was sure that header("Location:url") redirects the browser instantly to URL, or at least stops the execution of the code. But appearantely it continues...
3
by: James | last post by:
Hi, I have a form with 2 fields. 'A' 'B' The user completes one of the fields and the form is submitted. On the results page I want to run a query, but this will change subject to which...
0
by: Ollivier Robert | last post by:
Hello, I'm trying to link PHP with Oracle 9.2.0/OCI8 with gcc 3.2.3 on a Solaris9 system. The link succeeds but everytime I try to run php, I get a SEGV from inside the libcnltsh.so library. ...
1
by: Richard Galli | last post by:
I want viewers to compare state laws on a single subject. Imagine a three-column table with a drop-down box on the top. A viewer selects a state from the list, and that state's text fills the...
4
by: Albert Ahtenberg | last post by:
Hello, I have two questions. 1. When the user presses the back button and returns to a form he filled the form is reseted. How do I leave there the values he inserted? 2. When the...
1
by: inderjit S Gabrie | last post by:
Hi all Here is the scenerio ...is it possibly to do this... i am getting valid course dates output on to a web which i have designed ....all is okay so far , look at the following web url ...
2
by: Jack | last post by:
Hi All, What is the PHP equivilent of Oracle bind variables in a SQL statement, e.g. select x from y where z=:parameter Which in asp/jsp would be followed by some statements to bind a value...
3
by: Sandwick | last post by:
I am trying to change the size of a drawing so they are all 3x3. the script below is what i was trying to use to cut it in half ... I get errors. I can display the normal picture but not the...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.