本帖最后由 铿锵科技 于 2013-2-19 20:41 编辑
有一个Udp接收信息的类
import java.net.*;
public class UdpRec {
public static void main(String[] args) throws Exception
{
//创建UDP Scocket 建立端点
DatagramSocket dSocket=new DatagramSocket(10000);//这个接收端口为10000
//定义缓冲区用于存储接收的数据
byte[] buf=new byte[1024];
//定义数据包
DatagramPacket dPacket=new DatagramPacket(buf, buf.length);
//将接收到的数据存入包中
dSocket.receive(dPacket);
//拆包:通过数据包的方法获取数据
String ip=dPacket.getAddress().getHostAddress();
String data=new String(dPacket.getData(),0,dPacket.getLength());
int port=dPacket.getPort();
System.out.println(ip+":"+port+"::"+data);
dSocket.close();
}
}
另一个Udp发送端类
import java.net.*;
public class UdpSend {
public static void main(String[] args) throws Exception {
// 创建UDP服务对象
DatagramSocket dSocket = new DatagramSocket(8888);//这个发送端口为8888
// 确定数据
byte[] buf = "UDP 哥们来了".getBytes();
// 数据封包
DatagramPacket dPacket = new DatagramPacket(buf, buf.length,
InetAddress.getByName("192.168.1.108"), 10000);
dSocket.send(dPacket);
// 关闭资源
dSocket.close();
}
}
为什么发送端的
DatagramSocket dSocket = new DatagramSocket(8888);//这个发送端口为8888
和
接收端的
DatagramSocket dSocket=new DatagramSocket(10000);//这个接收端口为10000
两个端口不一样也能收到消息?请高手详细解释!
|
|