日期:2014-05-20  浏览次数:20764 次

关于JAVA的UDP协议 比较急!
我想使用JAVA本身自带的方法绑定自己PC的某一张网卡收发UDP数据 请问我要怎么做?
(可以不用把源码写给我,只要告诉我用什么类或者什么方法,甚至是给我点提示都行)
1.不能使用插件(因为我之前用JPCAP实现了,但是客户不允许)
2.需要绑定MAC,因为我做的项目的通信不需要基于IP,所以绑定IP是没什么用的。
我把我用JPCAP实现的方法贴出来 以便大家好理解
Java code

EthernetPacket ether = new EthernetPacket();
ether.frametype = EthernetPacket.ETHERTYPE_IP;
ether.dst_mac = {(byte)0xff,(byte)0xff,(byte)0xff,(byte)0xff,(byte)0xff,(byte)0xff};
JpcapSender sender = JpcapSender.openDevice(devices[i]);
ether.src_mac = devices[i].mac_address;
UDPPacket p = new UDPPacket(5555,5556);
p.datalink = ether;


其中,devices[]是我获取的PC机所有网卡信息,通过p.datalink = ether;这句话,我就可以指定网卡收发UDP数据了,不知道我该怎么用JAVA本身自带的方法实现,望各位大侠帮帮忙!

------解决方案--------------------
java2000.net 搜索 UDP能找到几个例子
比如
Java.net UDP编程
Java中的UDP协议编程
...
------解决方案--------------------
额。。。。。客户需求真变态,能完成功能不就行了么?

我们Java程序是跑在JVM上的,换句话说,Java程序一般情况下,只能看到JVM这一层的东西。
如果想要进行底层开发,除了JNI我想不到还有其他方法了。

其实JPCAP也是使用了JNI的方式。

不过,我还是推荐楼主使用JPCAP,或者其他的插件,省事,而且代价小。

------解决方案--------------------
引用楼主 virginkj 的帖子:
我想使用JAVA本身自带的方法绑定自己PC的某一张网卡收发UDP数据 请问我要怎么做?
(可以不用把源码写给我,只要告诉我用什么类或者什么方法,甚至是给我点提示都行)
1.不能使用插件(因为我之前用JPCAP实现了,但是客户不允许)
2.需要绑定MAC,因为我做的项目的通信不需要基于IP,所以绑定IP是没什么用的。
我把我用JPCAP实现的方法贴出来 以便大家好理解

Java code
EthernetPacket ether = new EthernetPacket(…

------解决方案--------------------
你的交换机也有管理IP吧.
我糊涂了.
Q:562174885