首页 > 编程语言 >Java网路编程____UDP协议Socket客户端服务器聊天室列子

Java网路编程____UDP协议Socket客户端服务器聊天室列子

时间:2023-09-13 12:33:39浏览次数:36  
标签:UDP datagramPacket Java Socket java 端口 import new 服务端


1.UPD服务端

定义数据Socket和注册外放的端口

一直做true循环读取数据包Packet里的数据 datagramPacket.getData()转换为String字符串读取

 

package com.frame.base.UDP;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
 * @author Administrator
 * UDP_Sorcket服务端接收UDP_Socket客户端数据
 */
public class UDPSocketServer {

	public static void main(String[] args) throws Exception {
		/**
		 * 服务端注册9999端口接收和发送数据由此端口转发
		 */
		DatagramSocket datagramSocket = new DatagramSocket(9999);
		while (true) {
			byte[] bytes = new byte[1024];
			/**
			 * 定义数据包对象 获取客户端请求9999端口的数据
			 */
			DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length);
			datagramSocket.receive(datagramPacket);
			/**
			 * 获取的数据为
			 */
			String receiveData = new String(datagramPacket.getData(), 0, datagramPacket.getLength());
			System.out.println(datagramPacket.getAddress().getHostAddress() +"_说:"+ receiveData);
		}
	}
}

2.UDP_Socket客户端

 

定义数据Socket和交互的端口

封装数据Packet和服务端ip和接入端口 发送数据字节关闭

 

package com.frame.base.UDP;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDPSocketClient {

	public static void main(String[] args) throws Exception {
		/**
		 * 定义客户单发送报文的端口
		 */
		DatagramSocket datagramSocket = new DatagramSocket(8080);
		/**
		 * 读取控制台信息
		 */
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
		String lineStr = null;
		while ((lineStr = bufferedReader.readLine()) != null) {
			byte[] bytes = lineStr.getBytes("UTF-8");
			/**
			 * 封装数据发送到服务端ip和端口
			 */
			DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length,InetAddress.getByName("127.0.0.1"), 9999);
			datagramSocket.send(datagramPacket);
		}
		datagramSocket.close();
	}
}

3.运行

 

1.启动UDPSocketServer服务端main方法

 

2.启动UDPSocketClient服务端main方法

3.在客户端控制台发送信息给服务端

Java网路编程____UDP协议Socket客户端服务器聊天室列子_服务端

Java网路编程____UDP协议Socket客户端服务器聊天室列子_socket_02

Java网路编程____UDP协议Socket客户端服务器聊天室列子_udp_03

Java网路编程____UDP协议Socket客户端服务器聊天室列子_聊天_04

 

 

 

 

标签:UDP,datagramPacket,Java,Socket,java,端口,import,new,服务端
From: https://blog.51cto.com/ratelcloud/7454358

相关文章

  • Java多线程____JUC并发锁机制
    1.同步锁即通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁但是,在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能进行CPU调度,从而在CPU上执行;而没有获......
  • Java多线程____wait(), notify(), notifyAll()等方法介绍
    在JDK中,定义了wait(),notify()和notifyAll()等接口。wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。而notify()和notifyAll()的作用,则是唤醒当前对象上的等待线程;notify()是唤醒单个线程,而notifyAll()是唤醒所有的线程。wait,notify和notif......
  • java安全架构____Hmac秘钥加密自己的摘要数据
    importjavax.crypto.KeyGenerator;importjavax.crypto.Mac;importjavax.crypto.SecretKey;importjavax.crypto.spec.SecretKeySpec;importorg.apache.commons.codec.binary.Base64;/***@authorAdministratorHMACutil*/publicclassHmacUtil{ private......
  • java安全架构____对称加密和非对称加密区别(对称秘钥,非对称秘钥)
    (一)对称加密(SymmetricCryptography)对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secretkey),这种方法在密码学中叫做对称加密算法。对称加密通常使用的是相对较小的密钥,一般小于256bit。因为密钥越大,加密越强.例如AES,DES(二)......
  • Java安全架构____KeyGenerator(对称)秘钥生成工具详解
    packagecom.ryx.frame.security.aes;importjava.security.SecureRandom;importjava.util.Date;importjavax.crypto.KeyGenerator;importjavax.crypto.SecretKey;importorg.apache.commons.codec.binary.Base64;publicclassKeyGeneral{ /** *AES128,256......
  • java安全架构____读取.cer证书文件的信息
    importjava.io.FileInputStream;importjava.security.cert.CertificateFactory;importjava.security.cert.X509Certificate;/***@authorGod*随便找一个.cer文件读取即可*/publicclassCertUtil{ /** *@authorGod *@cerPathJava读取Cer证书信息 *@th......
  • Java字符画生成工具
    生成工具如果让我们手工的来编辑这些字符画,显然是一件非常困难的差事。所以,我们可以借助下面这些工具,轻松地根据文字或图片来生成用于Banner输出的字符画。http://patorjk.com/software/taaghttp://www.network-science.de/ascii/http://www.degraeve.com/img2txt.ph......
  • 61基于java的学生考勤管理系统设计与实现(可参考做毕业设计)
    本章节给大家带来一个基于java学生考勤管理系统设计与实现,可适用于学生考勤系统,校园考勤,大学考勤管理,企业考勤系统,公司考勤系统,学校考勤系统。引言本文首先介绍了学生考勤管理系统的研究背景与意义,其次介绍了系统的总体功能设计,接着将对系统规划好的总体功能拆分成了各个功能子......
  • java数据结构与算法_____选择排序
    importjava.util.Arrays;/***@authorGod*选择排序(Selectionsort)是一种简单直观的排序算法。*它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,*存放在序列的起始位置,直到全部待排序的数据元素排完。*选择排序是不稳定的排序方法(比如序列[5,5,3......
  • Java安全管理____Java通过Https链接读取证书基本信息
    importjava.net.URL;importjava.security.SecureRandom;importjava.security.cert.Certificate;importjava.security.cert.CertificateException;importjava.security.cert.X509Certificate;importjavax.net.ssl.HostnameVerifier;importjavax.net.ssl.HttpsURL......