A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 你好明天 中级黑马   /  2015-6-1 10:57  /  627 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

udp编程的时候ip地址我随便指定都能成功连接:DatagramPacket dp = new DatagramPacket(s.getBytes(),
                                s.getBytes().length, InetAddress.getByName("1.2.3.4"), 10086);
tcp编程的时候我得给定正确的ip才行:
Socket sk = new Socket("192.168.1.106", 10086);
请问我理解的对吗?为什么是这样呢?




4 个回复

倒序浏览
不对,UDP只管发送,接受到没有跟发送端无关,只关心数据发出去没有,而TCP的话是必须接受方在收到数据后给反馈信息回来,然后再告知接收方收到数据(3次)
回复 使用道具 举报
面向无连接  不保证收到  所以你给的地址只要符合IP地址规范就行,面向连接时,地址稍有错误就无法建立连接,就好比寄信  地址写错  收寄局也会受理,寄到没有 就得你自己想办法联系了,面向连接就好像打电话,号码拨错了就打给别人了,或者“您拨打的电话是空号”哈。。。。。。。。。。。JAVA操作tcp/ip v6应该如何操作?
回复 使用道具 举报
UDP是无连接的,不需要与对方建立连接;而TCP是面向连接的,在传输数据之前先要与对方建立连接。因此,UDP只管发出数据包,不保证对方能收到。而TCP在发送之前要与对方建立连接,连接成功后才发送数据,若连接失败则数据不会发送,你给的IP地址不存在或因为别的原因与你的机器无法联通,自然会失败。
回复 使用道具 举报
学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马