每张网卡难道不是只能有一个IP?如果是这样,你绑定了IP不就是等于绑定了MAC了吗?UDP是传输层的协议,MAC是数据链路层的协议,中间隔了个网络层(IP层),你就是绑定了MAC,UDP还是会与IP层对话的,你绕不过这个IP层.个人观点.关于UDP的内容不是太懂.
解决方案 »
- 如何在FTP服务器端解压ZIP文件
- Hibernate 日期插入问题
- 求一个从小到大快速排序整形数组的完整方法(代码)
- 关于Sun Java System Application Server的一些问题!分不是问题!
- Java和C/C++/C#/VB/Delphi/Perl/PHP/ASM/哪个好?
- 一个奇怪的中文问题(在webshpere下没人回答才发到这儿的)
- Applet中,文本输入框,有时不认空格键是怎么回事
- 关于对上溯造型的理解
- 晕~~~教教我怎么用JAVA运行啊?????
- jps1.1.2(java pet store)问题
- 不怕代码长,Come in!
- 条件判断中,字节比较的问题。
还有就是一张网卡怎么可能只能存在一个IP?这个是一个非常入门级的网络知识啊 汗...- -||
比如
Java.net UDP编程
Java中的UDP协议编程
...
如果想要进行底层开发,除了JNI我想不到还有其他方法了。其实JPCAP也是使用了JNI的方式。不过,我还是推荐楼主使用JPCAP,或者其他的插件,省事,而且代价小。
你的途径有:
1)支持数据链路层功能的包如:JPCAP包[它其实是从LINUX中有名的LIBPCAP轻量级包装而来的]
2)你自己的JNI或JNA[用C在数据链路层写--这在LINUX下很好写,在WINDOWS下在数据链路层写,你会很麻烦,除非你用第三方的低层驱动-如:有名的WINPCAP包中的低层网络驱动。](用C写,JAVA调用)
3)一个网卡可以绑定多个IP,如:逻辑多址。绑定IP其实没什么用。真正有用的(更强一些的)当然是绑定MAC。
1.在下一条我会详细说明
2.我现在已经完成的功能就是依靠WINPCAP+JPCAP来完成客户的需求的,而且所有的测试也都通过了,但是用过WINPCAP的人都知道,这是需要安装的,所以当我们把安装包发给客户验收的时候,客户一看到需要安装插件就不干了,坚决要求我们把WINPCAP去掉,也就连带的把JPCAP去掉了(因为这两个需要配合使用),所以我现在被他们弄得很是无语....
3.如果实在是没办法依靠JDK API无法完成的话,那我们只能和客户谈判,要么你接受插件,要么重新签订合同,我们外包给别人做,但是老板却都不想看见这样的情况,郁闷至极啊!
设条静态路由记录,强制发往xxxIP的数据包从XXX网卡走.
我只是强制发往XXIP的包从XX网卡走而已,对其他网卡没影响啊.
不太明白你做的软件功能,能详细说说么?
======
首先保证那片网卡和软件要通信的IP[段]能PING通.
然后改PC路由表,设置所有发往指定IP[段]的包从这网卡走.
即使多网卡间路由记录有重复,也可以用细化路由记录解决.
例:
目标IP:192.168.100.254
宿主PC-NIC-1:192.168.100.1
宿主PC-NIC-2:10.3.1.1
假设你的客户要求往[目标IP]去包都要从NIC2走,那么做二个设置:
1.在NIC2上加个IP[192.168.100.250],保证能PING通[目标IP].
2.修改PC路由表[假设PC是瘟到死系统]
route add 192.168.100.254 255.255.255.255 192.168.100.250
这样就应该可以了.
改完后PING下,再抓几个包看看就知道了.
试试!
我糊涂了.
Q:562174885
wpcap安装是可以不被察觉的,直接拷贝那几个dll,有两个dll不能覆盖,可以先把原来的剪切出来,再把你的拷贝进去。
在安装包脚本里偷偷安装wpcap就可以啦
MulticastSocket socket = new MulticastSocket();
NetworkInterface ni = NetworkInterface.getByName("xxxx-name");
if(ni!=null){
socket.setNetworkInterface(ni);
}
socket.joinGroup("your remote ip");socket.send(data....)
这样就可以用你指定的名为xxx-name的网络设备发送数据了呀
the network device name I metioned is normally known by names such as "le0 (Solaris)" or “eth0 (linux)”.