java网络之基于UDP的聊天程序示例解析

基于UDP的Socket通信

UDP协议不是一种基于稳定连接的协议,是一种面向数据报包的通信协议,不需要通信双方建立稳定的连接,也没有所谓服务端和客户的概念,数据报包在传输的时候不保证一定及时到达,也不能保证数据报包的到达顺序,但是UDP协议传输效率要远高于TCP/IP。

以下是一个基于UDP的简单的消息发送接收程序。

消息发送方

1.创建一个数据报的网络通道

 DatagramSocket ds = new DatagramSocket();

2.准备需要传输的数据

String msg = "天王盖地虎,小鸡炖蘑菇!!!";

3.将需要发送的数据打包成数据报包

DatagramPacket packet = new DatagramPacket(
      msg.getBytes(), 		//需要被发送的数据的字节数组
      msg.getBytes().length, 	//发送的数据长度(字节数组长度)
      InetAddress.getByName("localhost"), //接收方的ip
      1025	//接收方的端口
    );

4.发送数据报包

 ds.send(packet);

5.关闭通道

ds.close();

消息接收方

1.创建一个数据报的网络通道,绑定到指定端口

DatagramSocket ds = new DatagramSocket(1025);

2.声明字节数组,用于存储接收的数据

byte[] b = new byte[1024];

3.准备数据报包(空包)

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

4.接收数据到数据报包中

ds.receive(packet);

5.将数据解析为字符串并输出

//接受到的数据(字节数组)实际长度
int len = packet.getLength();
//将字节数组转换为字符串
String s = new String(b, 0, len);
System.out.println("收到的消息:"+s);

如要进行循环接收,则将第4、第5步进行无限循环。

到此这篇关于java网络之基于UDP的聊天程序示例解析的文章就介绍到这了,更多相关java基于UDP的聊天程序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java基于UDP协议实现简单的聊天室程序

    最近比较闲,一直在抽空回顾一些Java方面的技术应用. 今天没什么事做,基于UDP协议,写了一个非常简单的聊天室程序. 现在的工作,很少用到socket,也算是对Java网络编程方面的一个简单回忆. 先看一下效果: 实现的效果可以说是非常非常简单,但还是可以简单的看到一个实现原理.  "聊天室001"的用户,小红和小绿相互聊了两句,"聊天室002"的小黑无人理会,在一旁寂寞着. 看一下代码实现: 1.首先是消息服务器的实现,功能很简单: •将客户端的信息(进入了哪一

  • java中UDP简单聊天程序实例代码

    学过计算机网络通信的都知道,计算机之间传送数据由两种,即TCP通信和UDP通信.TCP是可靠的面向连接的通信协议,二UDP是不可靠的面向无连接的通信协议. java中有基于TCP的网络套接字通信,也有基于UDP的用户数据报通信,UDP的信息传输速度快,但不可靠! 基于UDP通信的基本模式: (1)将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地. (2)接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容. 客户机 复制代码 代码如下: package com

  • java网络之基于UDP的聊天程序示例解析

    基于UDP的Socket通信 UDP协议不是一种基于稳定连接的协议,是一种面向数据报包的通信协议,不需要通信双方建立稳定的连接,也没有所谓服务端和客户的概念,数据报包在传输的时候不保证一定及时到达,也不能保证数据报包的到达顺序,但是UDP协议传输效率要远高于TCP/IP. 以下是一个基于UDP的简单的消息发送接收程序. 消息发送方 1.创建一个数据报的网络通道 DatagramSocket ds = new DatagramSocket(); 2.准备需要传输的数据 String msg = "

  • 基于Java的Socket多客户端Client-Server聊天程序的实现

    任务要求 编写一个简单的Socket多客户端聊天程序: 客户端程序,从控制台输入字符串,发送到服务器端,并将服务器返回的信息显示出来 服务器端程序,从客户机接收数据并打印,同时将从标准输入获取的信息发送给客户机 满足一个服务器可以服务多个客户 低配版本链接 实现代码 工具类 import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Socket

  • java编程实现基于UDP协议传输数据的方法

    本文实例讲述了java编程实现基于UDP协议传输数据的方法.分享给大家供大家参考,具体如下: UDP协议(User Datagram Protocol,用户数据报协议)不同于TCP协议,它是不可能靠的,但是它比TCP协议具有更快的传输速度,UDP发送的数据单元称为数据报,当网络传输UDP传输UDP数据报是无法保证数据能够到达目的地,也无法保证按发送的顺序到达目的地,也就是说先发送了"hello",再发送了"world",但接收方可能会先收到"world&q

  • Java实现基于TCP的通讯程序实例解析

    Java中的TCP通信程序 TCP可以实现两台计算机之间的数据交互通信的两端,要严格区分客户端与服务端 两端通信时的步骤: 1.服务端程序,需要事先启动,等待客户端连接 2.客户端主动连接服务器端,才能成功通信,服务器端不可以主动链接客户端 在java中两个类用于实现TCP通信程序: 客户端: java.net.Socket 类表示.创建 Socket 对象,向服务端发出连接请求,服务端响应请求,两者建 立连接开始通信. 服务端: java.net.ServerSocket 类表示.创建 Ser

  • Java网络编程之UDP实现原理解析

    UDP实现通信非常简单,没有服务器,每个都是客户端,每个客户端都需要一个发送端口和一个接收端口.一个客户端向另一个客户端发送消息时,需要知道对方的IP和接收端口,所用到的类为DatagramSocket. DatagramSocket socket =new DatagramSocket(),发送端socket,若不指定端口,系统自动分配 DatagramSocket socket =new DatagramSocket("接收信息端口"),接收端socket,需要指定接收端口 ​ 若

  • Java网络编程之TCP通信完整代码示例

    一.概述 Socket类是Java执行客户端TCP操作的基础类,这个类本身使用代码通过主机操作系统的本地TCP栈进行通信.Socket类的方法会建立和销毁连接,设置各种Socket选项. ServerSocket类是Java执行服务器端操作的基础类,该类运行于服务器,监听入站TCP连接,每个socket服务器监听服务器的某个端口,当远程主机的客户端尝试连接此端口时,服务器就被唤醒,并返回一个表示两台主机之间socket的正常Socket对象. 二.什么是TCP? TCP是一种面向连接的.可靠的.

  • java基于spring boot本地上传图片示例解析

    前几天项目中刚好需要上传图片的需求,当时想的是用七牛云,因为我用七牛云也用了好几次,就是把图片上传到七牛云空间里面,数据库里面保存的是这张上传图片的url地址 那么页面访问也就很方便,考虑到项目部署的环境我就用了本地上传,不牵涉数据库的操作.我就花了半个小时写了个本地上传图片的小demo.非常的简单. 下面是需要的依赖 pom.xml文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=

  • Java网络编程之URL+URLconnection使用方法示例

    目录 HTTP GET和POST 从URLs到本地文件 在java.net包中包含两个有趣的类:URL类和URLConnection类.这两个类可以用来创建客户端到web服务器(HTTP服务器)的连接.下面是一个简单的代码例子: URL url = new URL("http://jenkov.com"); URLConnection urlConnection = url.openConnection(); InputStream input = urlConnection.getI

  • python网络爬虫实现个性化音乐播放器示例解析

    目录 前言 开发组件 功能 流程分析 基于python的个性化音乐下载器模块详细 (一)前端模块 (二)后端模块 前言 当前很多人在闲暇时喜欢听音乐,那么基于这种现象,我也是肝了几个小时完成了基于python的个性化音乐播放器,现在分享给你们. 开发组件 python3.5 以上版本就行tkinter (python 自带的用于图形用户界面开发的模块)requests(爬虫模块)Chrome 浏览器等等 功能 音乐下载器功能: (1).用户输入想要下载的歌曲或关键字名称 (2).程序获取用户所输

  • java面向对象设计原则之开闭原则示例解析

    概念 唯一不变的是不断的变化,在软件开发中应该对需求的变化持开放态度,我们要做的就是如何将这种变化对我们现有的成果带来最小的冲击.开闭原则直接面对面向对象程序的目标扩展性和可维护性,要求对扩展开放,对修改关闭:即在不修改原有代码的情况下改变模块的行为.该原则是面向对象程序设计的总原则,也是度量程序设计的好与坏的唯一标准 实现 开闭原则的实现策略主要在面向对象的封装性和多态性的基础上,利用面向对象的其他原则完成的. 1.使用多态机制解决问题. 如:远程监控系统使用数据传输使用427版本的协议,一年

随机推荐