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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 夏添 于 2013-3-11 21:22 编辑

DatagramPacket(byte[] buf, int length, InetAddress address, int port)

DatagramPacket(byte[] buf, int length, SocketAddress address)
有什么区别吗?


      亲爱的筒子们,不要讲说少个int port介种话哈`~~~呵呵,
      查阅API文档,注释一模一样...费解..
     我们一般用DatagramPacket(byte[] buf, int length, InetAddress address, int port)
     那么DatagramPacket(byte[] buf, int length, SocketAddress address)在什么情况下使用呢???

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
1、DatagramPacket(byte[] buf, int length, InetAddress address, int port);将length长的buf数据发送到指定的地址的端口号处
 2、 DatagramPacket(byte[] buf, int length, SocketAddress address);将length长的buf数据发送到指定的套接字地址处
现在提取两者的不同点:1是地址的端口号;2是套接字地址
多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。
DatagramPacket(byte[] buf, int length, SocketAddress address)可以大意的认为需要指定协议时使用

套接字(socket=ipaddress+TCP/UDP port)多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。
关键点就是:ip地址+使用的传输协议(UDP或TCP)+端口号绑定为socket,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 赞一个!

查看全部评分

回复 使用道具 举报
崔芝鲁 发表于 2013-3-1 00:44
1、DatagramPacket(byte[] buf, int length, InetAddress address, int port);将length长的buf数据发送到指 ...

:(......可不可会讲的简单点呢..铜子...
回复 使用道具 举报
夏添 发表于 2013-3-1 06:13
......可不可会讲的简单点呢..铜子...

你静下心看看,这就是能看明白的最简化了
回复 使用道具 举报
本帖最后由 刘圣繁 于 2013-3-1 11:02 编辑

DatagramPacket(byte[] buf, int length, InetAddress address, int port)

DatagramPacket(byte[] buf, int length, SocketAddress address)
注意注意:SocketAddress  封装了InetAddress 和port 两者也就是 SocketAddress  =InetAddress +port
SocketAddress是个借口  有一个子类实现了它 InetSocketAddress   
SocketAddress sa=new InetSocketAddress(InetAddres  addr,int port); 然后把sa 传给DatagramPacket(byte[] buf, int length, SocketAddress address) 这不就跟第一个一样了吗

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马