JavaSE学习笔记--网络编程之UDP

原创 2011年10月12日 19:07:56
 package com.itcast.NWPr;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

 /**
  * UDP:面向无连接,不可靠,速度快。相当于步话机。
  * TCP:面向连接,可靠,速度相对慢。相当于打电话。
  * 需求:UDP演示
  * udp发送端的思路:
  * 1,建立udp的socket服务。 
  * 2,将要发送的数据封装成数据包。
  * 3,通过udp的socket服务,将数据包发送取出。
  * 4,建议关闭资源。 
  *
  *udp的接收端:
     * 思路:
  * 1,使用DatagramSocket类,建立udp的socket服务。服务。并监听一个端口。
  * 2,预先定义好一个字节数组作为数据包中的容器,使用这个数据包存储接收到的数据。
  * 3,通过receive方法接收数据。
  * 4,通过数据包对象的功能来完成对接收到的数据进行解析。
  * 5,可以对资源进行关闭。
  *
  * @param args
  * @throws Exception 
  */
public class SendDemo {
 public static void main(String[] args) throws Exception{
  //udp发送端的思路:
  //1,建立udp的socket服务。
  //要使用DatagramSocket类,此类表示用来发送和接收数据报包的套接字。
  DatagramSocket ds = new DatagramSocket();
  //2,将要发送的数据封装成数据包。
  //要使用DatagramPacket类。
  //DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.54.9"),10000);
  //InetAddress,此类表示互联网协议 (IP) 地址。InetAddress.getByName("192.168.54.9")获取一个IP对象
  byte[] buf = "Hello哥们来了!".getBytes();
  DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),12345);
  //3,通过udp的socket服务,将数据包发送取出。
  ds.send(dp);
  //4,建议关闭资源。 
  ds.close();
 }
} 
                
package com.itcast.NWPr;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class RecieveDemo {
 /***udp的接收端:
     * 思路:
  * 1,使用DatagramSocket类,建立udp的socket服务。服务。并监听一个端口。
  * 2,预先定义好一个字节数组作为数据包中的容器,使用这个数据包存储接收到的数据。
  * 3,通过receive方法接收数据。
  * 4,通过数据包对象的功能来完成对接收到的数据进行解析。
  * 5,可以对资源进行关闭。
  * @param args
  * @throws Exception 
  */
 public static void main(String[] args) throws Exception {
  /*---接下来,看看接收端的定义---*/
  //udp的接收端思路:
   //1,使用DatagramSocket类,建立udp的socket服务。服务。并监听一个端口。
  DatagramSocket ds = new DatagramSocket(12345);
   //2,预先定义好一个字节数组作为数据包中的容器,使用这个数据包存储接收到的数据。
  byte[] buf = new byte[1024];
  DatagramPacket dp = new DatagramPacket(buf,buf.length);
   //3,通过receive方法接收数据。
  ds.receive(dp);
   //4,通过数据包对象的功能来完成对接收到的数据进行解析。
  String hostAddress = dp.getAddress().getHostAddress();
  String hostName = dp.getAddress().getHostName();
  int port = dp.getPort();
  String text1 = dp.getData().toString();
  String text2 = new String(dp.getData(),0,dp.getLength());
  
  System.out.println("hostAddress="+hostAddress);
  System.out.println("hostName="+hostName);
  System.out.println("port="+port);
  System.out.println("text1="+text1);
  System.out.println("text12="+text2);
  
   //5,可以对资源进行关闭。
  ds.close();
 }
}

上面是我通过代码的方式对UDP的发送和接收的总结。

嵌入式LInux网络编程

-
  • 1970年01月01日 08:00

JavaSE实战——网络编程

本篇博客主要介绍了Java基础的网络编程部分。涉及到基本的网络元素,诸如IP地址、端口、协议、套接字等;接着介绍了面向无连接的UDP用户数据报协议、面向连接的TCP传输控制协议,并实现了发送端接收端聊...
  • zhongkelee
  • zhongkelee
  • 2015-09-24 16:00:26
  • 1364

网络编程---UDP

什么是UDP? UDP 是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一...
  • ljheee
  • ljheee
  • 2016-06-20 14:41:47
  • 969

0-Linux 网络编程学习笔记导航

学习交流群: Linux 学习交流群 610441700 说明:本系列文章并不能取代 《UNP》这本旷世之作,文章中难免有错误与不足之处,希望读者们遇到有疑问的地方可以加群互相交...
  • q1007729991
  • q1007729991
  • 2017-04-04 17:09:48
  • 5226

网络编程:TCP 与 UDP 的区别

1.TCP与UDP在概念上的区别: Tcp是一种面向连接的,可靠的字节流服务。(设有数据包编号与差错控制机制。) 特点: 由于网络的复杂性,传输信息时,数据包可能会丢失,差错控制中的确认...
  • fmoonstar
  • fmoonstar
  • 2011-10-09 10:18:45
  • 4371

Linux网络编程[UDP客户端服务器的编程模型]

Linux网络编程[UDP客户端服务器的编程模型] 编程模型概述 相关函数 实例demo 编程模型概述从一个图示开始: 从上述图示中我们都可以看到,UDP的传输相对来说比TC...
  • qq_29924041
  • qq_29924041
  • 2017-05-13 11:34:38
  • 1015

java SE阶段经典的50个程序案例。有注解

  • 2013年07月26日 17:04
  • 3.57MB
  • 下载

Java网络编程实践和总结 --- 基于UDP的Socket编程

前面的blog介绍和总结基于TCP协议的网络编程。TCP提供了一种可靠的传输方式。如果数据在传输过程丢失或者损坏了,TCP会保证数据会再次发送,直到数据完整接受。如果数据包以乱序到达目的地,TCP也会...
  • joeyjobs
  • joeyjobs
  • 2015-04-02 19:54:29
  • 1858

Android网络编程TCP、UDP(一)

一、TCP与UDP简介TCP和UDP都属于TCP/IP参考模型中传输层的协议,且都是基于网际互联层IP协议。一位大神作了一个很形象的比喻:TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把...
  • a10615
  • a10615
  • 2016-09-01 02:21:40
  • 6379

嵌入式Linux网络编程 之 简单的UDP网络编程

关于用户数据报文协议(UDP): UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。而且UDP提供的是不可靠的非连接型的传输层服务...
  • u011467781
  • u011467781
  • 2015-08-24 16:29:21
  • 1190
收藏助手
不良信息举报
您举报文章:JavaSE学习笔记--网络编程之UDP
举报原因:
原因补充:

(最多只允许输入30个字)