协议:通信的规则。分为UDP和TCP

UDP协议(不可靠协议):把数据打包;数据有限制:64K;不建立连接,速度快;不可靠

TCP协议(三次握手协议):建立连接通道;数据无限制;速度慢;可靠

Socket:网络套接字

Socket=IP地址+端口

原理机制:

1、通信两端都有Socket

2、网络通信其实就是Socket的通信

3、数据通过IO传输

UDP协议发送数据

A、创建发送端的Socket对象 DatagramSocket()

B、创建数据,并把数据打包   DatagramPacket(byte[] buf,int length,inetaddress address, int port)  要发送的数据,数据长度,发送的IP地址,发送的端口

C、调用Socket对象的发送方法发送数据包  sent()

D、释放资源

代码

package cn.idcast2;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;public class SendDemo {public static void main(String[] args) throws IOException {// 创建Socket对象    DatagramSocket()DatagramSocket ds = new DatagramSocket();// 创建要发送的数据byte[] bys = "你好啊".getBytes();// 创建发送数据的长度int length = bys.length;// 创建发送数据的目标IP地址InetAddress ip = InetAddress.getByName("192.168.1.115");// 创建发送数据的目标端口int port = 10011;// 把数据打包// DatagramPacket(byte[] buf,int length,inetaddress address, int port)DatagramPacket dp = new DatagramPacket(bys, length, ip, port);// 发送数据ds.send(dp);// 释放资源,由于底层是IO流,所以要释放资源ds.close();}
}

  

UDP协议接收数据

A、创建接收端的Socket对象  DatagramSocket (int port)

B、创建一个数据包            DatagramPacker(byte[] buf,int length)

C、调用Socket对象接收数据   receive()

D、解析数据包,并显示在控制台

1、数据从哪里来呢?IP地址   getAddress()和getHostAddress()

2、接收的数据是什么呢?        getData()

3、数据的实际长度是多少呢?    getLength()

4、接收的数据要转换成字符串

E、释放资源

代码

package cn.idcast2;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;public class ReceiveDemo {public static void main(String[] args) throws IOException {// 创建接收端的Socket对象//DatagramSocket (int port)DatagramSocket ds = new DatagramSocket(10011);// 创建数据包 DategramPacker(byte[] buf,int length)byte[] bys = new byte[1024];int length = bys.length;DatagramPacket dp = new DatagramPacket(bys, length);ds.receive(dp);// 解析数据:数据从哪里接收的呢?从IP地址查InetAddress address = dp.getAddress();String ip =address.getHostAddress();// 接收的数据是什么呢,具体长度有多大呢byte[] bys2 = dp.getData();int length2 = dp.getLength();//把数据转换为字符串String s = new String(bys, 0, length2);System.out.println(ip + "传送的数据为:" + s);ds.close();}
}

  

注意:先从接收端查看数据,然后再查看发送端的数据

转载于:https://www.cnblogs.com/zengjiao/p/6516819.html

协议 UDP、TCP UDP的接发数据的步骤相关推荐

  1. 网络编程及三大协议(TCP + UDP + Http)

    网络编程及三大协议(TCP + UDP + Http) 一.网络编程 1.计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络 ...

  2. 网络编程2_网络通讯协议, socket(tcp, udp)

    一. 网络通讯协议     互联网协议的功能: 定义计算机如何接入internet, 以及接入internet的计算机的通信标准     互联网协议按照功能的不同分为osi七层或tcp/ip五层    ...

  3. 网络协议总结(TCP,UDP,HTTP,HTTPS)

    TCP/IP总结 文章目录 TCP/IP总结 一. 网络模型 1. OSI七层 2. TCP/IP五层 二. TCP/UDP 1. TCP头部结构 2. 三次握手 3. 四次挥手 4. 流量控制 4. ...

  4. 传输层协议(TCP/UDP)介绍

    一,TCP/IP协议族的传输层协议概况:  1,TCP:传输控制协议  2,UDP:用户数据报协议  二,TCP/UDP协议详解:  1,TCP  a.TCP是面向连接的,可靠的进程到进程通信的协议 ...

  5. 简单的网络协议:TCP/UDP HTTP/HTTPS

    TCP TCP传输控制协议,是一种提供可靠数据传输的通用协议 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端机通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使 ...

  6. zynq tcp如何从网口发数据_ZYNQ_PL与PS的DDR交互

    ZYNQ7000系列中PS端与PL端的通信都是通过AXI总线进行连接的,利用好AXI协议是PS与PL交互的基础,因此设计这个实验来进一步了解两者间的通信. 1.实验目的 PL端通过AXI协议访问PS端 ...

  7. zynq tcp如何从网口发数据_基于TCP/IP协议的电口通信

    之前有介绍过TCP/IP协议的实现是通过轻量级LWIP协议实现的,具体在FPGA中实现又可以分为多种方式,具体如下: 图8‑98 LWIP协议在FPGA中的实现方式 LWIP可以通过硬核实现或者软核实 ...

  8. HTTP协议之TCP/UDP区别

    1. 目的差异 首先,这两个协议的目的不同:TCP 协议的核心目标是提供可靠的网络传输,而 UDP 的目标是在提供报文交换能力基础上尽可能地简化协议轻装上阵. 2. 可靠性差异 TCP 核心是要在保证 ...

  9. ESP8266,电脑作为TCP SERVER,8266发数据给电脑

    正确打开ESP8266-与本机电脑建立连接并互发消息 1.确认ESP8266正常上电 2.使ESP8266进入AT模式 波特率:115200:数据位8位,1位停止位,无奇偶校正,无数据流控制. 3. ...

  10. 网络协议-网络分层、TCP/UDP、TCP三次握手和四次挥手

    网络的五层划分是什么? 应用层,常见协议:HTTP.FTP 传输层,常见协议:TCP.UDP 网络层,常见协议:IP 链路层 物理层 TCP 和 UDP 的区别是什么 TCP/UDP 都属于传输层的协 ...

最新文章

  1. DevExpress GridControl使用(二)
  2. Swift 3 新特性
  3. 3 了解MyBatis映射文件
  4. MySQL配置文件优化
  5. Struts2中的OGNL详解
  6. Linux 关闭、开启、查看 防火墙命令
  7. STM32驱动LCD实战
  8. mysql基础,索引
  9. python闹钟_用python做了个高级闹钟 欢迎借鉴
  10. spring教程笔记6
  11. win7服务器如何还原系统教程视频,windows7系统还愿怎么操作_win7系统还原重置方法...
  12. 在code::block中创建console application
  13. 巧用金山网盾对付游戏插件强行锁定主页
  14. 易语言dd驱动模拟按键模块_DD驱动 虚拟键盘 虚拟鼠标
  15. 2018.6清北学堂day3上午笔记
  16. 剥opgw光缆工具_ADSS光缆开剥光缆常用方法及开剥注意点
  17. 基于matlab的RS编译码仿真,从底层原理分析RS编译码的实现过程
  18. 福昕阅读器自定义快捷键
  19. 论坛社区项目——项目总结
  20. 工资被倒挂,想离职很正常,但这3种情况要警惕

热门文章

  1. [CareerCup] 7.6 The Line Passes the Most Number of Points 经过最多点的直线
  2. SEO专题之三:SEO与网站开发
  3. SAStruts中文文档
  4. vim常用命令(二)
  5. Silverlight 与 WPF 的一些差异
  6. ASP .NET CORE MVC 部署Windows 系统上 IIS具体步骤---.Net Core 部署到 IIS位系统中的步骤...
  7. day4(继承、修饰符、方法的重写、super关键词、继承中的构造方法、object类、对象转型)...
  8. enum枚举类型 的用法
  9. manifest.json文件的 “name” “description” “version 字段解释
  10. Mybatis参数Integer类型值为0 源码处理