PDA

View Full Version : Sending UDP Packet


Chrono
Oct22-05, 01:00 AM
All right, guys. The code below is supposed to send UDP packets over the ports 0 - 40. However, when I run it, it doesn't seem to send anything. I'm guessing it's one of two things: I'm missing some essential part of the code, or that something's wrong with the address. Anybody have any ideas?
import java.net.*;
import java.io.*;
public class datagram
{
public static void main(String args[]) throws Exception
{
int i;
byte[] buf = new byte[256];
DatagramSocket socket;
DatagramPacket packet;
InetAddress address = InetAddress.getByName("localhost");
for(i = 0; i <= 40; i++)
{
socket = new DatagramSocket(i);
packet = new DatagramPacket(buf, buf.length, address, i);
socket.send(packet);
}
}
}

ramollari
Oct22-05, 05:08 AM
Don't use port numbers in the range 1-1024, because they are reserved by the operating system for other services. Couldn't you use bigger numbers, such as 5000?

Chrono
Oct22-05, 11:11 AM
Wouldn't the packets be sent back or rejected anyway?

dmail
Oct22-05, 12:58 PM
the packets won't be sent back because udp is not a reliable protcol unlike tcp, there is no guarantee that the packet will be received.

ramollari
Oct24-05, 04:17 AM
Wouldn't the packets be sent back or rejected anyway?

The behavior depends on the operating system, but it is guaranteed that those ports (i.e. 1-40) can't be accessed. By the way, port 0 doesn't exist.

the packets won't be sent back because udp is not a reliable protcol unlike tcp, there is no guarantee that the packet will be received.

UDP is a best-effort protocol, meaning that the most is done to ensure (although not guarantee) a reliable delivery. In practice it is rare that UDP fails.

Anttech
Oct24-05, 04:55 AM
By the way, port 0 doesn't exist.

Well according to RFC's it is reserved, in general networking port 0 is the same as a broadcast address in IP, if you code an app to use port 0 it will try to find the first available UDP port

RFC (http://www.iana.org/assignments/port-numbers)
Explanation of port 0 (http://compnetworking.about.com/od/tcpip/l/blports_0.htm)

becuase of this 'feature' many security experts recomend that port 0 is blocked

Chrono
Oct25-05, 08:09 PM
I think I got it, guys. Thanks for the help. For one thing I was sending them to localhost. I don't think that would work well on sending packets. Also, I did change the port numbers (by the way, I was told to use ports 0 - 40) to 40 - 80 and it worked just fine. I still think the school's security had some problems with us sending out packets, but eventually we all got it to work. Thanks again!