我想实现获取某个固定IP发来的所有的数据包,不管是那个端口发来的都要能得到,java编程如何实现?谢谢!!!!!
问题补充:我主要是不知道怎么写监听端的程序,那个IP的数据发往我的电脑的端口是未知的,小弟高分献上!!!!
winpcap
不难的,因为有现成的东西可以调用
其实你这个就是类似抓包工具,只不过你只要某些特定的包而已,就是抓包加过滤
我做过类似的东西,就是java调用winpcap的,很简单jni实现java通过c++去调用winpcap的方法
要解决这个问题,至少要保证监听端得端口是固定的,然后固定IP只需要往这个端口上发送数据,不用关心固定IP发送数据的端口。
这个就很麻烦了,要用操作系统底层的方法,你要用jni封装c++,c++中监听操作系统所有网络数据包,然后返回给java,中间加个过滤ip就可以了
使用c++来实现,也是需要接收端的端口是固定的。
不过要是实现这个功能的话,最好还是使用C++来实现,性能有保证。
不过这个要是自己用程序实现的话确实有难度,wireshark是专业的抓包工具,内部如何实现我也不是很了解。
我认为可以重申一下需求的合理性,引导或者是改造一下需求,不知道可行性有多高?
jpcap也用过不过我感觉没直接调用顺手呵呵,满足你的需求应该是没问题的