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

廊坊网页模板建站如何在招聘网站上做薪酬统计

廊坊网页模板建站,如何在招聘网站上做薪酬统计,邢台经济开发区网站,扬州做公司网站UDP协议是一个不安全、不连续的#xff0c;把数据发送出去之后就结束了#xff0c;根本不管对方有没有接收到。 快递员#xff1a;DatagramSocket 包裹#xff1a;DatagramPacket 原理就是将数据以及对方的信息都放到包裹里面#xff0c;然后让快递员发送给对应的人。… UDP协议是一个不安全、不连续的把数据发送出去之后就结束了根本不管对方有没有接收到。 快递员DatagramSocket 包裹DatagramPacket 原理就是将数据以及对方的信息都放到包裹里面然后让快递员发送给对应的人。 1、UDP传输数据 /* DatagramSocket ds new DatagramSocket(port); // 创建一个快递员这个端口是自己开放的端口用来接收和发送数据的。 别人给你发消息就是给你这个端口发送数据。 然后你这个端口的快递员就可以拿到快递。 */ public class UDPsendMsg {public void sendMsg(DatagramSocket ds, int port, String host, String msg){ // 发送信息byte[] bs msg.getBytes(); // UDP传输只能传输字节流所以需要将信息先转为byte数组DatagramPacket dp; // 创建一个包裹用来存放需要发送的数据以及目标信息try {// length是为了让对方知道你传输的数据长度dp new DatagramPacket(bs, bs.length, InetAddress.getByName(host), port); // 将数据以及目标信息放进包裹ds.send(dp); // 通过快递员ds发送包裹} catch (UnknownHostException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}}public String receMsg(DatagramSocket ds) { // 接收信息byte[] bs new byte[1024]; // 用来存放接收的信息DatagramPacket dp new DatagramPacket(bs, 1024); // 先创建一个新包裹try {ds.receive(dp); // 接收快递员ds的快递放到dp包裹里} catch (IOException e) {throw new RuntimeException(e);}String msg new String(bs, 0, dp.getLength()); // 数据在bs内然后0length是需要的数据信息然后转为字符串return msg; } } 2、练习 实现一个多人聊天室内跟之前的TCP多人聊天室功能相同 DatagramPacket包裹类通过快递员类得到包裹之后包裹类是有对方的host 、port等信息的。 public class UDPsendMsg { // 首先创建了一个工具类用来发送和接收消息方法的封装调用public void sendMsg(DatagramSocket ds, int port, String host, String msg){byte[] bs msg.getBytes();DatagramPacket dp;try {dp new DatagramPacket(bs, bs.length, InetAddress.getByName(host), port);// 3.把包裹发送出去ds.send(dp);} catch (UnknownHostException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}}public MapString, String receMsg(DatagramSocket ds) {byte[] bs new byte[1024];DatagramPacket dp new DatagramPacket(bs, 1024);try {ds.receive(dp);} catch (IOException e) {throw new RuntimeException(e);}String msg new String(bs, 0, dp.getLength());MapString, String data new HashMapString, String();data.put(msg, msg);data.put(port, String.valueOf(dp.getPort()));data.put(ip, dp.getAddress().toString().substring(1));return data;} } ​ public class ReceThread extends Thread { // 实现客户端接收信息的线程private DatagramSocket ds; ​public ReceThread(DatagramSocket ds) {this.ds ds;} ​Overridepublic void run() {UDPsendMsg sendMsg new UDPsendMsg();while(true) {MapString, String data sendMsg.receMsg(ds);String str (String)data.get(msg);System.out.println(str);}} } ​ public class SendThread extends Thread { // 实现客户端发送信息的线程private DatagramSocket ds;public SendThread(DatagramSocket ds) {this.ds ds;}Overridepublic void run() {Scanner sc new Scanner(System.in);UDPsendMsg sendMsg new UDPsendMsg();System.out.println(可以进行聊天了);sendMsg.sendMsg(ds, 9999, 127.0.0.1, asdf);while(true) {String str sc.nextLine();sendMsg.sendMsg(ds, 9999, 127.0.0.1, str);}} } ​ public class Client { // 实现客户端public static void main(String[] args) throws SocketException {Scanner sc   new Scanner(System.in);System.out.println(请输入你使用的端口号);int port Integer.parseInt(sc.nextLine());DatagramSocket ds new DatagramSocket(port);new ReceThread(ds).start();new SendThread(ds).start();} } ​ public class ServerSendThread extends Thread { // 实现服务端的接收消息后发送给其它消息的线程private DatagramSocket ds;private ListMapString, String datalist;public ServerSendThread(DatagramSocket ds, ListMapString,String datalist) {this.ds ds;this.datalist datalist;}Overridepublic void run() {UDPsendMsg sendMsg new UDPsendMsg(); ​while(true){MapString, String data sendMsg.receMsg(ds);String msg data.get(msg);MapString, String d new HashMapString, String();d.put(port, data.get(port));d.put(host, data.get(ip));msg data.get(ip) / data.get(port) : msg;if(!datalist.contains(d)) {// 聊天室内加入一个新成员System.out.println(聊天室内加入一个新成员 d.get(host) : d.get(port));datalist.add(d);msg 聊天室内加入一个新成员 data.get(ip) / data.get(port);}for(MapString, String da : datalist){if(!d.equals(da)) {sendMsg.sendMsg(ds, Integer.parseInt(da.get(port)), da.get(host), msg);}}}} } ​ public class Server { // 实现服务器端public static void main(String[] args) throws SocketException {DatagramSocket ds new DatagramSocket(9999);ListMapString, String list new ArrayListMapString, String();new ServerSendThread(ds, list).start();} }
http://www.zqtcl.cn/news/598599/

相关文章:

  • 番号网 wordpressseo搜索排名影响因素主要有
  • 网站后台开发语言中山市网站建设
  • 可以免费下源码的网站石家庄市里的网站公司
  • wordpress的别名获得页面的别名优化大师电视版
  • 怎么查网站关键词排名微信上的h5页面是怎么制作的
  • 如何为一个网站做app手机软件大全
  • 哪家网络公司做网站工信部网站原来是
  • json取数据做网站asp网站 模板
  • 漳州做网站多少钱乐清网红餐厅
  • 淮安网站开发sem推广案例
  • 义乌网站建设郭云砺信息科技做网站
  • 重庆御临建筑公司官网网站更换域名seo
  • 北京大兴专业网站建设公司wordpress 加速乐
  • win7怎么做网站域名绑定邯郸最新通知今天
  • 苏州企业网站设计开发个人 网站备案
  • 威海哪有网站建设中国建设部网站失信名单
  • 重庆哪家在做网站建设php网站后台验证码不显示
  • 开发网站开票写什么google收录查询
  • dw做的网站如何上传图片服务器配置wordpress
  • 恩施网站优化七牛云可以做网站的存储空间吗
  • 网站建设的源代码有什么作用网站维护包括哪些
  • 广东广东网站建设工作网站qq登录 开发
  • 中山网页网站设计模板access 数据库做网站
  • 阿里云网站做网站的服务器用什么系统
  • 什么公司做网站最好怎么给网站做快照
  • 官方网站建设的方法有哪些方面邮箱号码大全
  • 电商app软件山东网络推广优化排名
  • 国内产品网站w源码1688网站关键词描述字数
  • 网站404 模板wordpress 文字插件下载
  • 河南民基建设工程有限公司网站齐齐哈尔建设局网站首页