网络编程-upd\Socket接收发送
时间:2019-11-18
本文章向大家介绍网络编程-upd\Socket接收发送,主要包括网络编程-upd\Socket接收发送使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import java.io.*; import java.net.*; public class first { public static void main(String[] args) { // TODO Auto-generated method stub MySend ms = new MySend(); MyRece mr = new MyRece(); Thread th1 = new Thread(ms); Thread th2 = new Thread(mr); th1.start(); th2.start(); } } class MySend implements Runnable { public void run() { DatagramSocket ds = null; try { ds = new DatagramSocket(8888); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 2 确定数据 、 封装成数据包 byte[] data = "udp ge men lai le ".getBytes(); DatagramPacket dp = null; try { dp = new DatagramPacket(data,data.length,InetAddress.getByName("127.0.0.1"),10000); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 3 通过socket服务 将已有的数据包发送出去、通过send方法 try { ds.send(dp); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 4 关闭资源 ds.close(); } } class MyRece implements Runnable { public void run() { // 1 创建udp socket 建立接收端点 DatagramSocket ds = null; try { ds = new DatagramSocket(10000); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 2 定义数据包、用于存储数据 byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length); // 3 通过服务的 receive 方法将收到的数据存储到数据包中 try { ds.receive(dp); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 4 通过数据包中的方法获取其中的数值 String ip = dp.getAddress().getHostAddress(); String data = new String(dp.getData(),0,dp.getLength()); int port = dp.getPort(); System.out.println(ip+"::"+data+"::"+port); // 5 关闭资源 ds.close(); } }
原文地址:https://www.cnblogs.com/zxl1010/p/11880263.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 通过Intent调用系统拍照程序出现图片太小的问题解决办法
- Android Bitmap压缩方式分析
- Android自定义View实现游戏摇杆键盘的方法示例
- 详解Android Libgdx中ScrollPane和Actor事件冲突问题的解决办法
- Android ImageView的selector效果实例详解
- 完美解决关于禁止ViewPager预加载的相关问题
- Android开发之OpenGL绘制2D图形的方法分析
- Android实现RecyclerView下拉刷新效果
- 详解 Android中Libgdx使用ShapeRenderer自定义Actor解决无法接收到Touch事件的问题
- Android Shader应用开发之雷达扫描效果
- Android开发之绘制平面上的多边形功能分析
- Android Surfaceview的绘制与应用
- Android SQLite数据库版本升级的管理实现
- Android自定义view实现拖拽选择按钮
- Android 中ViewPager中使用WebView的注意事项