服务器端:

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. higncharts 去掉Highcharts.com链接

    将credits属性设为false credits: { enabled: false },

  2. Fragmen和Activity之间的通信--接口和实现的分离(转)

    Fragmen和Activity之间的通信--接口和实现的分离(转) 分类: Android平台     在平板的开发过程中通常都会采用多个Fragment的实现方式,通常有一个为list的Fragm ...

  3. PAT (Advanced Level) 1027. Colors in Mars (20)

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...

  4. at 定时任务

    每天一个linux命令(49):at命令   在windows系统中,windows提供了计划任务这一功能,在控制面板 -> 性能与维护 -> 任务计划, 它的功能就是安排自动运行的任务. ...

  5. 编译安装CoreSeek-4.1

    编译安装CoreSeek-4.1 yum -y install expat-devel* wget  http://www.coreseek.cn/uploads/csft/4.0/coreseek- ...

  6. Linux挂在ntfs格式的U盘

    工作中遇到linux系统 Red Hat Enterprise5.7 挂载希捷ntfs格式移动硬盘,会跳出一个ERROR提示框:The volume ‘EAGET-NQH’user the ntfs ...

  7. Linux系统开机启动流程

    (来源学习Linux时,自己做的笔记) Linux系统有7个运行级别(runlevel)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限, ...

  8. nginx做反向负载均衡,后端服务器获取真实客户端ip

    首先,在前端nginx上需要做如下配置: location / proxy_set_header host                   $host; proxy_set_header X-fo ...

  9. Java编程思想非主流知识点

    1. Java中的多态性理解(注意与C++区分) Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意 ...

  10. hack:选择符前缀法,样式属性前缀法

    选择符前缀法 <style> *html .test{width:100px;} /*only for IE6*/ *+html .test{width:100px;}/*for IE6 ...