hanbing113
hanbing113
2010-10-25 14:39
浏览 322
已采纳

java如何实现 获取固定IP 发来的所有数据包(端口号未知)

我想实现获取某个固定IP发来的所有的数据包,不管是那个端口发来的都要能得到,java编程如何实现?谢谢!!!!!
问题补充:我主要是不知道怎么写监听端的程序,那个IP的数据发往我的电脑的端口是未知的,小弟高分献上!!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • iteye_3976
    iteye_3976 2010-10-26 15:46
    已采纳

    winpcap

    不难的,因为有现成的东西可以调用

    其实你这个就是类似抓包工具,只不过你只要某些特定的包而已,就是抓包加过滤

    我做过类似的东西,就是java调用winpcap的,很简单jni实现java通过c++去调用winpcap的方法

    点赞 评论
  • enet_java
    enet_java 2010-10-25 14:44

    要解决这个问题,至少要保证监听端得端口是固定的,然后固定IP只需要往这个端口上发送数据,不用关心固定IP发送数据的端口。

    点赞 评论
  • iteye_3976
    iteye_3976 2010-10-25 16:29

    这个就很麻烦了,要用操作系统底层的方法,你要用jni封装c++,c++中监听操作系统所有网络数据包,然后返回给java,中间加个过滤ip就可以了

    点赞 评论
  • enet_java
    enet_java 2010-10-26 15:47

    使用c++来实现,也是需要接收端的端口是固定的。
    不过要是实现这个功能的话,最好还是使用C++来实现,性能有保证。
    不过这个要是自己用程序实现的话确实有难度,wireshark是专业的抓包工具,内部如何实现我也不是很了解。
    我认为可以重申一下需求的合理性,引导或者是改造一下需求,不知道可行性有多高?

    点赞 评论
  • iteye_3976
    iteye_3976 2010-10-27 11:25

    jpcap也用过不过我感觉没直接调用顺手呵呵,满足你的需求应该是没问题的

    点赞 评论

相关推荐