如果两个用户使用相同的IP怎么办?

qps2006 2008-04-24 02:09:26
我使用java.net.DatagramPacket 和 DatagramSocket 编程

不同的用户可能使用相同的IP,比如通过IP Masquerade,公司内通过局域网上网,是否也会出现共享IP的情况?

在java编程时,只知IP和端口,会出现什么问题?
...全文
1025 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
panxuan 2008-04-25
  • 打赏
  • 举报
回复
外网IP相同。内网IP不相同。
michelecindy 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hmsuccess 的回复:]
在局域网中或是在一个vlan中,如果两个用户使用相同的IP(私有地址),就会发上冲突,
比如说,你们班有5个学生的学号是一样的,在老师叫到这个学好的同学时你说那一个学生该站起来,
而处于不同局域网中的相同ip地址用户,在经过路由器或交换机转发的时候会相应的将你的ip地址转换为
一个外部合法地址
[/Quote]

路由器的问题
little06 2008-04-25
  • 打赏
  • 举报
回复
IP相同,端口不同
chenhongxin 2008-04-25
  • 打赏
  • 举报
回复
程序员在深圳JAVA群4247660
程序员在深圳c++群15195967
程序员在深圳.NET群Ⅱ:12203296
程序员在深圳TCP/IP协议栈开发:16956462
程序员在深圳JS & AJAX群:12578377
程序员在深圳英语学习群:23864353
深序员在深圳VB:11055959
程序员在深圳c++Ⅱ17409451
程序员在深圳c++群15195967
程序员在深圳嵌入式开发群37489763
程序员在深圳移动开发群31501597
程序员在深圳创业群33653422

不限专业分类:
高级群:17538442
第三群:2650485
第五群:29537639
第四群:28702746
第六群:10590618
第七群:10543585
第八群:12006492
第九群:19063074
第十群:2883885
第十一群:25460595
第十二群:9663807
scgjq 2008-04-25
  • 打赏
  • 举报
回复
***************************************************************************

思想决定行动,加入程序员在深圳QQ群,参加技术思想碰撞

专业分类:
程序员在深圳JAVA群4247660
程序员在深圳c++群15195967
程序员在深圳.NET群Ⅱ:12203296
程序员在深圳TCP/IP协议栈开发:16956462
程序员在深圳JS & AJAX群:12578377
程序员在深圳英语学习群:23864353
深序员在深圳VB:11055959
程序员在深圳c++Ⅱ17409451
程序员在深圳c++群15195967
程序员在深圳嵌入式开发群37489763
程序员在深圳移动开发群31501597
程序员在深圳创业群33653422

不限专业分类:
高级群:17538442
第三群:2650485
第五群:29537639
第四群:28702746
第六群:10590618
第七群:10543585
第八群:12006492
第九群:19063074
第十群:2883885
第十一群:25460595
第十二群:9663807

深圳程序员QQ群联盟成立两年多,拥有三十个以上的QQ群,人数达二千多人,有30%以上的成员的经验丰富的老手,包括国内外顶级大公司的成员(如微软、IBM,SUN,华为)、国内著名高校和研究院成员,和有丰富实践经验的高级程序(包括参加过上亿元的项目的架构师),有很热爱技术的成员(包括自己写过嵌入式操作系统),还有少数女程序员。现推介如下QQ群,如有兴趣速速加入:深程高级群I:17538442 深程高级群II:7120862 (深程高级群不欢迎新手,如果在深圳,月薪6K以下的别加入) c++:15195967 .NET:12203296 mobile:31501597嵌入式:37489763 JAVA:4247660
——————————————————————————————————————————
希望大家不要认为群能给你带来什么,这只是一个平台,让同等水平的程序员有个交流的机会或许能得到一点信息或许能带来一点启发。

*****************************************************************************
jfbm788 2008-04-25
  • 打赏
  • 举报
回复
月入6K  :(   ------何时才能实现的梦
qps2006 2008-04-24
  • 打赏
  • 举报
回复
今天睡了,明天再说!
qps2006 2008-04-24
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 hmsuccess 的回复:]
学习,NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。 在Internet中使用NAPT时,所有不同的TCP和UDP信息流看起来好像来源于同一个IP地址

我想让每个用户在同一UDP端口接收,使用任一UDP端口发送,UDP编程就是这样的 ?
这样在同一端口就可能会出现信道的拥塞,
[/Quote]

端口是逻辑的(软件的),又不是物理的,怎会拥塞?
你想怎么编?
qps2006 2008-04-24
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 jiangnaisong 的回复:]
引用 14 楼 qps2006 的回复:
感谢jiangnaisong!

我想让每个用户在同一UDP端口接收,使用任一UDP端口发送,UDP编程就是这样的

好像没有什么办法

答:你这样设计的方案有问题啊。每一个用户都在内网,而且都用同一个端口收,那么:NAT做端口MAPPING就很麻烦了。
建议你能否如下设计:用户(无论是不是内网),首先向你这个UDPServer发UDP包,然后你记下他的IP和Port(这个IP和Port能唯一标识该用户)。因为即使用户是在…
[/Quote]

那么用户到底使用哪个UDP端口向服务器发包?
hmsuccess 2008-04-24
  • 打赏
  • 举报
回复
学习,NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。 在Internet中使用NAPT时,所有不同的TCP和UDP信息流看起来好像来源于同一个IP地址

我想让每个用户在同一UDP端口接收,使用任一UDP端口发送,UDP编程就是这样的 ?
这样在同一端口就可能会出现信道的拥塞,
hmsuccess 2008-04-24
  • 打赏
  • 举报
回复
NAT技术一共有三种:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)
NAPT还真没用过
云上飞翔 2008-04-24
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 qps2006 的回复:]
感谢jiangnaisong!

我想让每个用户在同一UDP端口接收,使用任一UDP端口发送,UDP编程就是这样的

好像没有什么办法
[/Quote]
答:你这样设计的方案有问题啊。每一个用户都在内网,而且都用同一个端口收,那么:NAT做端口MAPPING就很麻烦了。
建议你能否如下设计:用户(无论是不是内网),首先向你这个UDPServer发UDP包,然后你记下他的IP和Port(这个IP和Port能唯一标识该用户)。因为即使用户是在内网,在NAT后面,这个IP和Port是NAT的公开IP和公开Port,但NAT能将向发的UDP包转给内网用户。

以上仅供你参考。

qps2006 2008-04-24
  • 打赏
  • 举报
回复
感谢jiangnaisong!

我想让每个用户在同一UDP端口接收,使用任一UDP端口发送,UDP编程就是这样的

好像没有什么办法
Shine_Panda 2008-04-24
  • 打赏
  • 举报
回复
网络编程不太懂.
还是顶一下。............
Inhibitory 2008-04-24
  • 打赏
  • 举报
回复
武力决定谁使用这个IP
胡矣 2008-04-24
  • 打赏
  • 举报
回复
up
云上飞翔 2008-04-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 qps2006 的帖子:]
我使用java.net.DatagramPacket 和 DatagramSocket 编程

不同的用户可能使用相同的IP,比如通过IP Masquerade,公司内通过局域网上网,是否也会出现共享IP的情况?

在java编程时,只知IP和端口,会出现什么问题?
[/Quote]
答:楼主讲的IP Masquerade是Unix、Linux上在NAT出现之前就有的一种较老的技术。现在一般是采用NAT。NAT技术一共有三种:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。其中:静态NAT(Static NAT),对于你的方案(由IP区分用户)没有什么问题,能正常工作。动态地址NAT(Pooled NAT)主要用于远程用户动态拨号,当用户联接上之后,动态地址NAT就会分配给他一个合法IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。对于你的方案(由IP区分用户),在用户在正常连接期间区分,没有什么问题,能正常工作。第三种网络地址端口转换NAPT(Port-Level NAT)是用得最多的一种,将中小型的网络隐藏在一个合法的IP地址后面,内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的端口号。 这个NAT对你的方案(仅采用IP区分用户就不行了),用户的IP都相同,唯一不同的是端口号。因此,我认为:在这种NAT技术下,你的方案中要用IP+端口号(其实就是靠端口号了)方式来区分用户了。

以上仅供你参考
frank3G 2008-04-24
  • 打赏
  • 举报
回复
JF ,一个放弃
huxinyu929 2008-04-24
  • 打赏
  • 举报
回复
ding
haoxiongok 2008-04-24
  • 打赏
  • 举报
回复
帮楼主顶一下
加载更多回复(6)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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