如何随机分配tcp/udp端口

cx_wzp 2013-01-15 10:59:42
最近在写一个软路由的程序,碰到一个问题:
内网电脑通过本机访问外网
细节:中间要产生一种映射关系:内网IP+所用端口<-->分配的端口
问题:不知如何生成端口,如何判断该端口是否正在使用?
有了解的,求指点。。。
...全文
668 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
欧阳春晖 2013-01-17
  • 打赏
  • 举报
回复
数据包转发驱动,用来进行底层数据包转发。
欧阳春晖 2013-01-17
  • 打赏
  • 举报
回复
不过可能要设计到驱动的
欧阳春晖 2013-01-17
  • 打赏
  • 举报
回复
直接用操作系统分配的不就好了?
ForestDB 2013-01-17
  • 打赏
  • 举报
回复
可以参考netfilter/iptables的实现。 基本就是基于元组的哈希。
cx_wzp 2013-01-17
  • 打赏
  • 举报
回复
引用 1 楼 mymtom 的回复:
bind到端口0上,系统就会自动分配,但是可能不是随机的,而是根据系统的算法。 也可以用rand算个随机数出来,然后bind,如果bind不成功就取下一个随机数。
可能我没有说明白: 这个程序最后是用pcap_sendpacket把手工设置的包发送出去,这里边相关的协议都已经封装好了。源mac、目的mac、源ip等在发送之前已经全部都已经修改了。
cx_wzp 2013-01-17
  • 打赏
  • 举报
回复
引用 2 楼 nice_cxf 的回复:
直接系统生成就是了,自己在取出来保存一下就是了
请问你怎么系统生成啊?有相关的方法吗?
nice_cxf 2013-01-16
  • 打赏
  • 举报
回复
直接系统生成就是了,自己在取出来保存一下就是了
mymtom 2013-01-16
  • 打赏
  • 举报
回复
bind到端口0上,系统就会自动分配,但是可能不是随机的,而是根据系统的算法。 也可以用rand算个随机数出来,然后bind,如果bind不成功就取下一个随机数。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧