当前位置:首页 > 全部子站 > IT > 思科认证

基于Java的UDP协议程序设计初探

来源:长理培训发布时间:2017-12-22 10:25:52

 百度广告

  在Java中进行网络编程是相对容易的,因为J2SE中的Java.net包已经对各种通信协议很好的进行了封装,主要讲述如何基于UDP(用户数据报)协议编写应用程序。

  通常我们进行网络编程一般都是使用基于socket的TCP/IP编程,毕竟TCP/IP应用非常的广泛,比如我们浏览互联网就是基于HTTP协议、我们发送邮件是通过SMTP协议。它们都是基于TCP/IP的。TCP/IP的传输最重要的是它可以保证数据到达目的地,而UDP则不同他并不保证准确的传输,数据有可能丢失。如果有兴趣的话,读者可以参考《计算机网络》一书。

  在介绍UDP编程之前有必要介绍一个重要的类InetAddress,用最简单的一句话描述这个类的作用就是:它代表了一个IP地址。这非常重要在互联网中如果知道了IP地址则意味着我们知道了通信的端点。这个类没有构造器但是有几个工厂方法,通过传递不同的参数例如IP,Hostname等来得到一个InetAddress的实例,下面的这个小例子可以得到我机器的IP地址。

 

import Java.net.*;

public class TestNet
public static void main(String args) throws Exception
InetAddress ia = InetAddress.getByName("compaq");
System.out.println(ipAdr); 
}


  接下来开始讲述如何使用UDP编程,这非常容易理解,我们应该首先构造一个数据报,然后把它发送出去,同时我们也可以接收数据报。在Java中提供了DatagramPacket和DatagramSocket两个类来完成这样的任务,前者负责构造数据报后者负责发送和接收。看看DatagramPacket的构造器

 

DatagramPacket(byte buf, int length, InetAddress address, int port) 
DatagramPacket(byte buf, int offset, int length, SocketAddress address) 
DatagramPacket(byte buf, int length) 

  同样我们编写一个C/S模型的例子来说明如何使用这两个重要的类,如果对API还不熟悉请参考Java doc。下面的程序在本机构造一个时间服务器,客户端来取得时间。以前曾经写过类似的时间服务器程序,不过这个是基于UDP的编程。

 

import Java.io.*;
import Java.util.*;

public class TimeServer {
public static void main(String args) throws 
DatagramSocket socket = new DatagramSocket(DAYTIME_PORT);
byte buffer = new byte[256];
socket.receive(packet);
buffer = date.getBytes();
// for client from packet
int port = packet.getPort();
socket.send(packet);
}

import Java.io.*;

public class GetTime {
public static void main(String args) throws 
if (args.length == 0) {
System.exit(-1);
String host = args[0];
InetAddress address = InetAddress.getByName(host);
DatagramPacket packet = new DatagramPacket(message, message.length, 
DatagramSocket socket = new DatagramSocket();
packet =new DatagramPacket(message, message.length);
String time = new String(packet.getData());
socket.close();

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部