文档章节

UDP 协议简单编程

Element0506
 Element0506
发布于 2015/02/05 09:45
字数 367
阅读 119
收藏 10
点赞 0
评论 0
  1. 最近温故一下工作没有使用过的一些知识点,下面就是练习中使用的代码,提供给大家分享

  2. 客户端


  3. // 客户端
    public class UDPClient {
    
    	public static void main(String[] args) throws IOException {
    		DatagramSocket ds = null;// 定义接受数据的对象
    		byte[] data = new byte[1024]; // 开辟空间,接受数据
    		DatagramPacket dp = null; // 声明DatagramPacket对象
    		// 服务器端和客户端的要一致
    		ds = new DatagramSocket(9000); // 端口号
    		dp = new DatagramPacket(data, 1024); // 所有信息使用data保存
    		ds.receive(dp); // 接受数据
    
    		// dp的内容信息
    		String str = new String(dp.getData(), 0, dp.getLength()) + " from "
    				+ dp.getAddress().getLocalHost() + ":" + dp.getPort();
    
    		System.out.println(str);// 输出内容
    	}
    }
  4. 服务器端


  5. // 服务端
    public class UDPServer {
    	public static void main(String[] args) throws IOException {
    		DatagramSocket ds = null;
    		DatagramPacket dp = null;
    
    		ds = new DatagramSocket(3000);
    		String str = "hello World!";
    		// 构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。
    		dp = new DatagramPacket(str.getBytes(), str.length(),
    				InetAddress.getByName("localhost"), 9000);
    
    		System.out.println("发送信息");
    		ds.send(dp); // 服务端发送消息
    		ds.close();
    	}
    }
  6. 总结

    1.UDP中主要使用的是数据报协议发送的。

    2.UDP是属于不可靠协议,服务器端发送的消息,客户端不一定能收的到。

    3.UDP主要使用DatagramPacket和DatagramSocket两个类。

    4.DatagramPacket主要用于封装消息。

    5.DatagramSocket用于发送和接受消息。

    7.注意

    运行的时候,需要先运行客户端,然后再运行服务器端。


© 著作权归作者所有

共有 人打赏支持
Element0506
粉丝 11
博文 46
码字总数 18174
作品 0
南京
高级程序员
网络编程懒人入门(五):快速理解为什么说UDP有时比TCP更有优势

本文观点仅作参考,请根据自已系统的应用场景合理地选择数据传输层协议即可,无需盲目崇拜大牛言论。 1、前言 对于即时通讯开者新手来说,在开始着手编写IM或消息推送系统的代码前,最头疼的...

JackJiang2011
2017/12/19
0
0
网络编程懒人入门(四):快速理解TCP和UDP的差异

原作者:MeloDev,本文由即时通讯网重新修订发布,感谢原作者的无私分享。 1、前言 对于即时通讯开者新手来说,在开始着手编写IM或消息推送系统的代码前,最头疼的问题莫过于到底该选TCP还是...

JackJiang2011
2017/10/27
0
0
读懂Java中的Socket编程

餐前甜点 Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本。当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限。一旦IO操作对象被...

lwwjing
2015/12/15
85
0
Linux网络编程:什么是Linux下的网络编程?

想知道Linux下的网络编程培训×××?先来了解一下什么是Linux下的网络编程吧!Linux下的网络编程指的是socket套接字编程,入门比较简单。在学校里学过一些皮毛,平时就是自学玩,没有见识过...

长沙千锋
05/23
0
0
136-基于 UDP 协议的通信

前面我们所实现的通信程序,是基于 TCP 协议的,有连接的方式。也就是在创建 socket 的时候,socket 函数第二个参数总是指定为 SOCK_STREAM,第三个 protocol 参数指定为 0,即默认使用 TCP ...

q1007729991
2017/04/01
0
0
FPGA设计——CMOS图像采集与以太网传输显示(MT9V011)

1. 概述 本设计采用FPGA技术,将CMOS摄像头(DVP接口)的视频数据采集,并通过以太网传输(UDP方式)给PC机,上位机DEMO通过套接字编程,将视频实时显示在屏幕上。 2. 硬件系统框图 CMOS采用MT9...

shugenyin
2017/10/03
0
0
轨迹系列——Socket总结及实现基于TCP或UDP的809协议方法

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在上一篇博客中我详细介绍了809协议的内容。809协议规范了通信的报文,通信的规则...

李晓晖
2017/07/06
0
0
D语言高性能网络应用框架--collie

D语言的高性能跨平台异步网络库,提供pipeline模式,类似 Java 的 Netty 框架。 Collie 是一个异步的,事件驱动的网络编程框架和工具,直接对接操作系统底层高效的事件接口kqueue/epoll/iocp...

冰力
2016/10/08
753
0
TCP/UDP、IP 、Socket、HTTP笔记

1.1 TCP/IP协议组 TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成 IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。 TCP层负责面向应...

X堇色
2017/06/26
0
0
TCP-IP协议详解(7) UDP协议

我们已经讲解了物理层、连接层和网络层。最开始的连接层协议种类繁多(Ethernet、Wifi、ARP等等)。到了网络层,我们只剩下一个IP协议(IPv4和IPv6是替代关系)。进入到传输层(transport layer)...

炎黄V之怒
04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0
[机器学习]回归--Decision Tree Regression

CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值;当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很...

wangxuwei
昨天
1
0
Redis做分布式无锁CAS的问题

因为Redis本身是单线程的,具备原子性,所以可以用来做分布式无锁的操作,但会有一点小问题。 public interface OrderService { public String getOrderNo();} public class OrderRe...

算法之名
昨天
10
0
143. Reorder List - LeetCode

Question 143. Reorder List Solution 题目大意:给一个链表,将这个列表分成前后两部分,后半部分反转,再将这两分链表的节点交替连接成一个新的链表 思路 :先将链表分成前后两部分,将后部...

yysue
昨天
1
0
数据结构与算法1

第一个代码,描述一个被称为BankAccount的类,该类模拟了银行中的账户操作。程序建立了一个开户金额,显示金额,存款,取款并显示余额。 主要的知识点联系为类的含义,构造函数,公有和私有。...

沉迷于编程的小菜菜
昨天
1
0
从为什么别的队伍总比你的快说起

在机场候检排队的时候,大多数情况下,别的队伍都要比自己所在的队伍快,并常常懊悔当初怎么没去那个队。 其实,最快的队伍只能有一个,而排队之前并不知道那个队快。所以,如果有六个队伍你...

我是菜鸟我骄傲
昨天
1
0
分布式事务常见的解决方案

随着互联网的发展,越来越多的多服务相互之间的调用,这时候就产生了一个问题,在单项目情况下很容易实现的事务控制(通过数据库的acid控制),变得不那么容易。 这时候就产生了多种方案: ...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部