黑马程序员技术交流社区

标题: 关于udp和tcp编程的疑问 [打印本页]

作者: 你好明天    时间: 2015-6-1 10:57
标题: 关于udp和tcp编程的疑问
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);
请问我理解的对吗?为什么是这样呢?





作者: forTomorrow    时间: 2015-6-1 12:00
不对,UDP只管发送,接受到没有跟发送端无关,只关心数据发出去没有,而TCP的话是必须接受方在收到数据后给反馈信息回来,然后再告知接收方收到数据(3次)
作者: tougboy    时间: 2015-6-1 14:08
面向无连接  不保证收到  所以你给的地址只要符合IP地址规范就行,面向连接时,地址稍有错误就无法建立连接,就好比寄信  地址写错  收寄局也会受理,寄到没有 就得你自己想办法联系了,面向连接就好像打电话,号码拨错了就打给别人了,或者“您拨打的电话是空号”哈。。。。。。。。。。。JAVA操作tcp/ip v6应该如何操作?
作者: 少年闰土    时间: 2015-6-2 21:49
UDP是无连接的,不需要与对方建立连接;而TCP是面向连接的,在传输数据之前先要与对方建立连接。因此,UDP只管发出数据包,不保证对方能收到。而TCP在发送之前要与对方建立连接,连接成功后才发送数据,若连接失败则数据不会发送,你给的IP地址不存在或因为别的原因与你的机器无法联通,自然会失败。
作者: Tangtang    时间: 2015-6-2 23:37
学习学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2