由于要做app的UDP协议交互,所以就特地学习了下,其实也就类似于java的server和socket,下面就写了个简单的demo

服务端:

  1. package com.test1;
  2.  
  3. import java.io.IOException;
  4. import java.net.DatagramPacket;
  5. import java.net.DatagramSocket;
  6. import java.net.InetSocketAddress;
  7. import java.net.SocketException;
  8.  
  9. public class UpdServer {
  10. private byte[] buff = new byte[];
  11. private DatagramPacket dp;
  12. private DatagramSocket ds;
  13. private InetSocketAddress socketAddress;
  14. public UpdServer(String host, int port){
  15. socketAddress = new InetSocketAddress(host, port);
  16. try {
  17. ds = new DatagramSocket(socketAddress);
  18. } catch (SocketException e) {
  19. System.out.println("连接失败:" + e.getLocalizedMessage());
  20. e.printStackTrace();
  21. }
  22. System.out.println("服务器开启监听...");
  23. }
  24.  
  25. private String receive(String host, int port) {
  26. String info = "";
  27. try{
  28. dp = new DatagramPacket(buff, , buff.length);
  29. ds.receive(dp);
  30. info = new String(dp.getData(), , dp.getLength());
  31. }catch (Exception e) {
  32. e.printStackTrace();
  33. }
  34. return info;
  35. }
  36.  
  37. public static void main(String[] args) {
  38. String host = "127.0.0.1";
  39. int port = ;
  40. UpdServer server = new UpdServer(host, port);
  41. String info = server.receive(host, port);
  42. System.out.println(info);
  43. //发送信息到客服端
  44. server.send(new String("你好,骚年!"));
  45. }
  46.  
  47. private void send(String string) {
  48. DatagramPacket dps = new DatagramPacket(buff, , buff.length, dp.getAddress(), dp.getPort());
  49. dps.setData(string.getBytes());
  50. try {
  51. ds.send(dps);
  52. } catch (IOException e) {
  53. e.printStackTrace();
  54. }
  55. }
  56.  
  57. }

客户端:

  1. package com.test1;
  2.  
  3. import java.io.IOException;
  4. import java.net.DatagramPacket;
  5. import java.net.DatagramSocket;
  6. import java.net.InetAddress;
  7. import java.net.SocketException;
  8.  
  9. public class UpdClient {
  10. private byte[] buff = new byte[];
  11. private DatagramPacket dp;
  12. private DatagramSocket ds;
  13. public UpdClient(){
  14. try {
  15. ds = new DatagramSocket();
  16. } catch (SocketException e) {
  17. e.printStackTrace();
  18. }
  19. }
  20.  
  21. public static void main(String[] args) {
  22. UpdClient updClient = new UpdClient();
  23. String host = "127.0.0.1";
  24. int port = ;
  25. updClient.send(host, port, new String("你好,少年!").getBytes());
  26.  
  27. //接受
  28. String info = updClient.receive();
  29. System.out.println(info);
  30. }
  31.  
  32. private String receive() {
  33. DatagramPacket dpr = new DatagramPacket(buff, buff.length);
  34. String info = "";
  35. try {
  36. ds.receive(dpr);
  37. info = new String(dpr.getData(), , dpr.getLength());
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. }
  41. return info;
  42. }
  43.  
  44. private void send(String host, int port, byte[] b) {
  45. try{
  46. dp = new DatagramPacket(buff, , buff.length, InetAddress.getByName(host), port);
  47. dp.setData(b);
  48. ds.send(dp);
  49. }catch (Exception e) {
  50. e.printStackTrace();
  51. }
  52. }
  53. }

JAVA的UDP协议交互信息的更多相关文章

  1. Java中UDP协议的基本原理和简单用法

    UDP协议是非面向连接的,相对于TCP协议效率较高,但是不安全.UDP协议类似发信息的过程,不管接收方是在线还是关机状态,都会把信息发送出去.但是如果接收方不处于接收信息的状态,发送出去的数据包就会丢 ...

  2. java实现UDP协议传输DatagramSocket

    摘自:http://blog.csdn.net/wintys/article/details/3525643/ Server端. package com.topca.server; import ja ...

  3. udp协议基础(转自疯狂java讲义)

    第17章  网络编程 17.4  基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发 ...

  4. JAVA基础知识之网络编程——-基于UDP协议的通信例子

    UDP是一种不可靠的协议,它在通信两端各建立一个socket,这两个socket不会建立持久的通信连接,只会单方面向对方发送数据,不检查发送结果. java中基于UDP协议的通信使用DatagramS ...

  5. java,UDP协议简单实现

    //UDP协议简单实现-----Serverpackage UDP; import java.net.DatagramPacket; import java.net.DatagramSocket; i ...

  6. java基础知识回顾之java Socket学习(一)--UDP协议编程

    UDP传输:面向无连接的协议,不可靠,只是把应用程序传给IP层的数据报包发送出去,不保证发送出去的数据报包能到达目的地.不用再客户端和服务器端建立连接,没有超时重发等机制,传输速度快是它的优点.就像寄 ...

  7. Android(java)学习笔记80:UDP协议发送数据

    UDP协议发送数据:我们总是先运行接收端,再运行发送端发送端: 1 package cn.itcast_02; import java.io.IOException; import java.net. ...

  8. Java基础知识强化之网络编程笔记03:UDP之UDP协议发送数据 和 接收数据

    1. UDP协议发送数据 和 接收数据 UDP协议发送数据: • 创建发送端的Socket对象 • 创建数据,并把数据打包 • 调用Socket对象的发送方法,发送数据包 • 释放资源  UDP协议接 ...

  9. java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端

    java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端 启动界面如下图: 首先启动服务器: 客户端登陆,登陆成功后为: 默认发送是全部用户,是多人发送. 当在边列 ...

随机推荐

  1. A trip through the Graphics Pipeline 2011_10_Geometry Shaders

    Welcome back.     Last time, we dove into bottom end of the pixel pipeline. This time, we’ll switch ...

  2. Apache Spark技术实战之6 -- spark-submit常见问题及其解决

    除本人同意外,严禁一切转载,徽沪一郎. 概要 编写了独立运行的Spark Application之后,需要将其提交到Spark Cluster中运行,一般会采用spark-submit来进行应用的提交 ...

  3. websocket 403

  4. 微信的redirect_uri参数错误原因分析

    我们可以根据微信的开发者文档  http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 网页授权获取用户验证这一章来 ...

  5. AppleWatch___学习笔记(二)UI布局和UI控件

    1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...

  6. 十二、Java基础---------异常处理机制

    异常 异常 异常就是程序在运行时产生的异常情况. 异常的由来 问题也是现实生活中的具体事物,也可以通过java 类的形式进行描述,并封装成对象.异常就是java 对不正常情况进行描述后的对象的体现. ...

  7. Web Components是不是Web的未来

    今天 ,Web 组件已经从本质上改变了HTML.初次接触时,它看起来像一个全新的技术.Web组件最初的目的是使开发人员拥有扩展浏览器标签的能力,可以自由的进行定制组件.面对新的技术,你可能会觉得无从下 ...

  8. LeetCode----8. String to Integer (atoi)(Java)

    package myAtoi8; /* * Implement atoi to convert a string to an integer. Hint: Carefully consider all ...

  9. Iptables防火墙

    1 位置 使用vim /usr/sysconfig/iptables 2 启动.关闭.保存 service iptables stop service iptables start service i ...

  10. [课程设计]Scrum 1. 9 多鱼点餐系统开发进度(最后页面完善&修复BUG&用户测试反馈)

    [课程设计]Scrum 1. 9 多鱼点餐系统开发进度(最后页面完善&修复BUG&用户测试) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢 ...