当前位置: 首页 > news >正文

合作网站账号登录方式房地产开发公司取名

合作网站账号登录方式,房地产开发公司取名,网站制作公司制作网站,淘宝客网站怎么做推广计划一、TCP和UDP概述 传输层通常以TCP和UDP协议来控制端点与端点的通信 TCPUDP协议名称传输控制协议用户数据包协议是否连接面向连接的协议。数据必须要建立连接无连接的协议#xff0c;每个数据报中都给出完整的地址信息#xff0c;因此不需要事先建立发送方和接受方的连接是…一、TCP和UDP概述 传输层通常以TCP和UDP协议来控制端点与端点的通信 TCPUDP协议名称传输控制协议用户数据包协议是否连接面向连接的协议。数据必须要建立连接无连接的协议每个数据报中都给出完整的地址信息因此不需要事先建立发送方和接受方的连接是否可靠可靠协议。确保收方完全地获取发送方所发送的全部数据不可靠协议。发送方所发送的数据报并不一定以相同的次序到达接收方。可以传输的数据大小传输数据大小不受限制。一旦连接建立双方可以按统一的格式传输大的数据传输数据时是有大小限制的。每个被传输的数据报必须限定在64KB之类数据传输方式IO流DatagramPacket 二、UDP 1.UDP通信概述 UDP协议是一种对等通信的实现发送方只需要接受方的IP地址和Port端口就可以直接向它发送数据不需要线连接。每个程序都可以作为服务器也可以作为客户端。UDP是一种无连接的传输协议每个数据报的大小限定在64KB以内。数据报是一个在网络上发送的独立信息它的到达。到达时间以及内容本身等都不能得到保证。这种传输方式是无序的也不能确保绝对的安全可靠但它很简单也具有较高的效率。 使用UDP协议进行数据传输是需要将需要传输数据定义为数据报DatagramPaket在数据报中指明数据所要到达Socket主机地址和端口号然后再将数据报发送出去。实例化DatagramPacket时使用参数port和没有使用参数port的区别在与提供port的一方可以让别人主动发送消息过来而没有参数port的则会在发送消息时自动绑定一个本地没有使用的端口。在接收到发送的数据报DatagramPaket时不仅可以获取数据还可以获得发送方的IP和Port这样就可以向发送方发送数据因此本质上二者是对等的。 2.UDP通信特点 1、UDP是一种无连接的协议每个数据报都是一个独立的信息包括完整的原地址或目的地址它在网络上任何可能的路径传往目的地因此能否到达目的地到达目的地的时间以及内容的正确性都是不能被保证的。 2、UDP不属于连接型协议因而具有资源消耗小处理速度快的优点所以通常音频视频和普通数据在传输时使用UDP较多因为它们即使偶尔丢一两个数据包也不会对接收结果产生太大的影响。 3.UDP通信传输实现的基石 UDP通信的Socket使用DatagramSocket类实现数据报使用DatagramPaket实现 3.1、DatagramPake常用方法 InetAddress getAddress得到发送方IP地址int getPort得到发送方的端口号byte[] getData返回接收缓冲区这是一个byte[]int getLength接收字节的真实大小通常用于从byte[]中提取出有效数据int getOffset返回将要发送或则接收的数据偏移量 3.2、DatagramSocket常用方法 DatagramSocket空构造函数DatagramSocketint port指定通信端口void receiveDatagramPaket p接收数据报void sendDatagramPaket p发送数据报void close关闭Socket 4.UDP通信实现原理 无论一个UDP通信程序的功能多么功能齐全程序多么复杂七基本结构都是一样的都包括以下四个基本步骤 1、在接收端指定一个端口号来创建DatagramSocket然后创建一个接收数据报DatagramPaket使用recevie方法等待发送方请求报文这将阻塞服务器线程 2、在发送方创建一个DatagramSocket使用接收方的IP和端口来创建发送数据报DatagramPaket使用send方法发送。现在接收方的recevie方法被唤醒同时会将发送方的数据报内容填充到接收方的DatagramPaket中。 3、接收方从发送方的数据报中获得发送方的IP和端口使用它们构造一个发送数据报然后发送给发送方这样就实现了发送方和接收方的通信 4、在通信完成后在客服端和服务端中分别关闭Socket 5.UDP通信原理代码实现 代码如下发送端 import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress;public class SendMessage {public static void main(String[] args) throws Exception { // 创建发送端Socket对象 DatagramSocket sendSocket new DatagramSocket(); // 准备需要发送的数据 String message hello; // 创建一个缓冲区 byte[] messageByte message.getBytes(); // 获取缓冲区中数据的真实长度 int messageLen message.length(); // InetAddress实例化获取本机通信地址 InetAddress address InetAddress.getLocalHost(); // 设置通信端口号 int port 12345; // 打包数据 DatagramPacket sendPacket new DatagramPacket(messageByte, messageLen, address, port); // 发送数据 sendSocket.send(sendPacket); // 发送端等待接收端成功接收信息后返回的回应 // 创建一个缓冲区,容量尽量设置大一点因为不知道发送过来的信息有多大 byte[] recevieByte new byte[1024*10]; int len recevieByte.length; // 接收数据报 DatagramPacket receivePacket new DatagramPacket(recevieByte, len); // 接收数据 sendSocket.receive(receivePacket); // 获取接收端发送过来的真实长度以及数据 byte[] data receivePacket.getData(); int length receivePacket.getLength(); String receiveData new String(data,0,length); // 获取发送者的IP address receivePacket.getAddress(); String ip address.getHostAddress(); System.out.println(接收来自:ip的数据内容是:receiveData); // 关闭资源 sendSocket.close(); } } 代码如下接收端 import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress;public class RecevieMessage {public static void main(String[] args) throws Exception { // 接收消息的端口与发送端保持一致 int port 12345; DatagramSocket recevieSocket new DatagramSocket(port); // 设置缓冲区接收发过来的信息 byte[] receiveByte new byte[1024*10]; int len receiveByte.length; // 接收数据报 DatagramPacket receviePacket new DatagramPacket(receiveByte, len); // 接收数据 recevieSocket.receive(receviePacket); // 获取实际接收到的数据及其大小 byte[] data receviePacket.getData(); int length receviePacket.getLength(); String receiveData new String(data,0,length); // 获取发送者的IP InetAddress address receviePacket.getAddress(); String ip address.getHostAddress(); System.out.println(接收来自:ip的数据内容是:receiveData); // 接收端接收到信息后发送一条确认接收的消息到发送端 String message OK; byte[] messageByte message.getBytes(); int messageLength message.length(); // 从已收到的数据报中获取IP和port address receviePacket.getAddress(); int port1 receviePacket.getPort(); //构造新数据报 DatagramPacket sendPacket new DatagramPacket(messageByte, messageLength, address, port1); // 发送数据 recevieSocket.send(sendPacket); // 关闭资源 recevieSocket.close(); } } 发送端输出结果 接收端输出结果 总结 注意在发送端与接收端启动测试时最好最好先启动接收端因为这样才能确保信息能发送出去接收端能接收到信息。
http://www.hkea.cn/news/14308341/

相关文章:

  • 建设项目环境影响登记网站天津网站建设课程中的收获
  • 做爰片的网站关于解决网站 建设的请示
  • 专门做金融的招聘网站国外炫酷网站
  • 临沭县住房和城乡建设局网站安卓编程软件app
  • 中国空间站完成图集团网站建设要多少钱
  • 做个人网站怎么做手机平面设计软件
  • 厦门本地企业网站建设免费的网站入口在哪
  • 百度上做网站免费吗广东圆心网站开发
  • 南通 外贸建站中国建筑装饰网官网
  • 吉林省建设厅证件查询网站番禺免费核酸检测
  • 做导购网站需要多大的服务器软件开发文档说明
  • wordpress 教育 主题seo优化百度seo谷歌seo外贸推广网站seo优化运
  • 做网站在经营范围内属于什么魅姬直播
  • 做网站600广告网站素材
  • 佛山网站建设哪个好免费云虚拟主机
  • 网站开发工具 枫子科技永州做网站
  • 网络科技网站排名网页设计尺寸大小指的是什么
  • 可信网站必须做吗手机如何免费做网站
  • 自己建网站做电商还赚钱吗建手机网站款软件
  • 望都网站建设网站直播软件开发
  • 如何搭建一个企业子账号网站计生网站生育文明建设
  • 国家建设部网站官网爱站网是怎么回事
  • 山西建设厅网站2016年3号文件软件系统设计方案
  • 山东省住房和城乡建设厅网站电话wordpress绑定域名
  • 做个小型购物网站要多少钱wordpress模版对主机要求
  • 关于门户网站建设方案wordpress没有显示安装
  • wordpress 分类目录 关键词宁波seo怎么推广
  • 网站建设 杭州商务网站的规划与建设总结
  • 商城网站建设哪家好上海企业登记在线平台
  • 网站制作论文文献综述做网站找谷谷网络比较好