Java网络编程基础(三) Datagram类使用方法 - 编程入门网
的主机端口号。
Java网络编程基础(三) Datagram类使用方法(2)时间:2010-12-15发送和接收数据包还需要发送和接收数据包的套接字,即DatagramSocket对象,DatagramSocket套接字在本地机器端口监听是否有数据到达或者将数据包发送出去。其构造方法如下。 public DatagramSocket() 用本地机上任何一个可用的端口创建一个套接字,这个端口号是由系统随机产生的。使用方法如下:
这种构造方法没有指定端口号,可以用在客户端。如果构造不成功则触发SocketException异常。 public DatagramSocket(int port) 用一个指定的端口号port创建一个套接字。 当不能创建套接字时就抛出SocketException异常,其原因是指定的端口已被占用或者是试图连接低于1024的端口,但是又没有具备权限。 2 实例:利用DatagramSocket查询端口占用情况 我们可以利用这个异常探查本地机的端口号有没有服务。见示例12-9。 【程序源代码】 1 // ==================== Program Description =====================
【程序输出结果】
Java网络编程基础(三) Datagram类使用方法(3)时间:2010-12-15【程序注解】 在第11~19行我们用for循环以端口号为参数实例化DatagramSocket,其中端口号从1024到65535。如果在实例过程中出错,会抛出SocketException异常。我们根据这个异常就可以判断出哪些端口被占用,哪些还是空闲的。值得一提的是,我们在实例化了DatagramSocket后,调用了close()关闭它。作为一种好的作风,应该遵循。端口号在1024以下的系统可能会用到,比如HTTP默认为80端口,FTP默认为21端口,等等,所以我们从1024端口开始探查。 套接字对象也有相应的方法,例如发送数据包的方法还有接收数据包的方法,介绍如下。 pubic void close() 当我们创建一个套接字后,用该方法关闭套接字。 public int getLocalPort() 返回本地套接字的正在监听的端口号。 public void receive(DatagramPacket p) 从网络上接收数据包并将其存储在DatagramPacket对象p中。p中的数据缓冲区必须足够大,receive()把尽可能多的数据存放在p中,如果装不下,就把其余的部分丢弃。接收数据出错时会抛出IOException异常。 public Void Send(DatagramPacket p) 发送数据包,出错时会发生IOException异常。 下面,我们详细解释在Java中实现客户端与服务器之间数据报通信的方法。 应用程序的工作流程如下: (1)首先要建立数据报通信的Socket,我们可以通过创建一个DatagramSocket对象实现它,在Java中DatagramSocket类有如下两种构造方法: public DatagramSocket() 构造一个数据报socket,并使其与本地主机任一可用的端口连接。若打不开socket则抛出SocketException异常。 public DatagramSocket(int port) 构造一个数据报socket,并使其与本地主机指 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |