服务器端:

1、创建DatagramSocket,指定端口号

2、创建DatagramPacket

3、接收客户端发送的数据信息

4、读取数据

客户端:

1、定义发送信息

2、创建DatagramPacket,包含将要发送的信息

3、创建DatagramSocket

4、发送数据

Server.java

public class UDPServer {

public static void main(String[] args) throws IOException{

/**

* 接收客户端发送的数据

*/

//1、创建服务器端DatagramSocket,指定端口

DatagramSocket socket = new DatagramSocket(8888);

//2、创建数据报,用于接收客户端发送的数据

byte[] data = new byte[1024];

DatagramPacket packet = new DatagramPacket(data,data.length);

//3、接收客户端发送的数据

System.out.println("*****************服务器端已经启动,等待客户端发送数据******************");

socket.receive(packet);//处于阻塞状态

//4、读取数据

String info = new String(data,0,packet.getLength());

System.out.println("我是服务器,客户端说:"+info);

/**

* 向客户端响应数据

*/

//1、定义客户端的地址,端口号以及数据

InetAddress address = packet.getAddress();

int port = packet.getPort();

byte[] data2 = "欢迎该客户端登录".getBytes();

//2、创建数据报对象

DatagramPacket packet2 = new DatagramPacket(data2,data2.length,address,port);

//3、向客户端发送数据

socket.send(packet2);

//4、关闭资源

socket.close();

}

}

Client.java

public class UDPClient {

public static void main(String[] args) throws IOException{

/**

* 向服务器端发送数据

*/

//1、定义服务器的地址,端口号以及数据

InetAddress address = InetAddress.getByName("localhost");

int port = 8888;

byte[] data = "用户名:adm;密码:123".getBytes();

//2、创建数据报

DatagramPacket packet = new DatagramPacket(data,data.length,address,port);

//3、创建DatagramSocket对象

DatagramSocket socket = new DatagramSocket();

//4、向服务器端发送数据报

socket.send(packet);

/**

* 接收服务器端的响应数据

*/

//1、创建数据报,用于接收服务器端响应的数据

byte[] data2 = new byte[1024];

DatagramPacket packet2 = new DatagramPacket(data2,data2.length);

//2、接收数据

socket.receive(packet2);

//3、读取数据

String reply = new String(data2,0,packet2.getLength());

System.out.println("我是客户端,服务器说:"+reply);

//4、关闭资源

socket.close();

}

}

基于UDP协议的socket通信的更多相关文章

  1. day31——recv工作原理、高大上版解决粘包方式、基于UDP协议的socket通信

    day31 recv工作原理 源码解释: Receive up to buffersize bytes from the socket. 接收来自socket缓冲区的字节数据, For the opt ...

  2. 基于TCP与UDP协议的socket通信

    基于TCP与UDP协议的socket通信 C/S架构与初识socket 在开始socket介绍之前,得先知道一个Client端/服务端架构,也就是 C/S 架构,互联网中处处充满了 C/S 架构(Cl ...

  3. 网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

    Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服 ...

  4. 基于UDP协议的socket编程

    UDP协议特点: 1.无连接.服务端与客户端传输数据之前不需要进行连接,且没有超时重发等机制,只是把数据通过网络发送出去.也正是因为此特点,所以基于UDP协议的socket的客户端在启动之前不需要先启 ...

  5. python 全栈开发,Day34(基于UDP协议的socket)

    昨日内容回顾 网络的基础概念arp协议 :通过ip地址找到mac地址五层模型 : 应用层 传输层 网络层 数据链路层 物理层tcp协议 : 可靠的 面向连接 全双工 三次握手 四次挥手udp协议 : ...

  6. Python进阶----UDP协议使用socket通信,socketserver模块实现并发

    Python进阶----UDP协议使用socket通信,socketserver模块实现并发 一丶基于UDP协议的socket 实现UDP协议传输数据 代码如下:

  7. Java开发笔记(一百一十六)采用UDP协议的Socket通信

    前面介绍了如何通过Socket接口传输文本与文件,在示例代码中,Socket客户端得先调用connect方法连接服务端,确认双方成功连上后才能继续运行后面的代码,这种确认机制确保客户端与服务端的的确确 ...

  8. 闲来无事,写个基于UDP协议的Socket通讯Demo

    项目一期已经做完,二期需求还没定稿,所以最近比较闲. 上一篇写的是TCP协议,今天写一下UDP协议.TCP是有连接协议,所以发送和接收消息前客户端和服务端需要建立连接:UDP是无连接协议,所以发送消息 ...

  9. 网络编程: 基于UDP协议的socket

    udp是无链接的,启动服务之后可以直接接受消息,不需要提前建立链接 UDP协议的通信优势: 允许一个服务器同时和多个客户端通信, TCP不行 服务端 import socket sk = socket ...

随机推荐

  1. APPIUM安装与搭建Q&A

    APPIUM安装与搭建Q&A Q1:在线安装TESTNG插件时,出现安装失败,提示:Cannot complete the install because one or more requir ...

  2. vector 的用法(c++)

    vertor是向量类型,它是一个对象实体.它作为容器可以容纳不同的实体,如int,flout,double,还有类类型. 1.包含头文件 #include <vector> 2.声明:ve ...

  3. 移动web开发资源大整合

    移动web开发资源大整合 http://www.cnblogs.com/PeunZhang/p/3407453.html

  4. 路过Haxe

    刚才在看Nape的时候,看到Haxe的代码,意外的感觉到亲切. 因为之前写过as2代码,最近学习了python,所以对haxe看起来很亲切,于是路过一下写了个HelloWorld. 另外,估计很长时间 ...

  5. [Unity UGUI]UGUI提供多种不同的解决方案

    现代游戏和应用程序经常需要支持各种不同的屏幕分辨率,特别是UI布局需要能够适应.UI系统在统一中包括各种工具来实现此目的,可以以多种方式组合在一起. 在这个小节我们将使用一个简单的案例研究和观察和比较 ...

  6. APP导致界面卡死,iPhone卡死

    实测,是 Reachability 类创建实例过多导致 http://stackoverflow.com/questions/34063166/ios-9-app-freeze-with-consol ...

  7. 《算法导论》归并排序----merge-sort

    伪代码请见<算法导论>2.3节 merge-sort实现: public class MergeSort {        public static void sort(double [ ...

  8. IOS手势识别,捏合,旋转,轻扫等

    ref:http://blog.csdn.net/rechard_chen/article/details/51769972   //点按手势的创建,这里需要实现响应事件的方法 UITapGestur ...

  9. Java:reflection

    参考:http://docs.oracle.com/javase/tutorial/reflect/index.html what and why? 通过反射来检测或者修改应用某些对象在运行时的状态或 ...

  10. docker网络访问(三)

    docker网络访问 ifconfig查看网卡,启动docker的时候,docker会帮我们创建一个docker0的网桥. 1.随机映射 docker run -P 2.指定映射 -p hostPor ...