【Java-网络编程】一对一聊天系统的实现
Java网络编程--->实现一个一对一的聊天系统
- 简绍
- 主类
- 发送
- 接收
- 效果
简绍
- 发送和接受分别对应一个线程,每一线程都要可以发信息和接受信息
主类
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.Scanner;public class MainTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入聊天服务当前启动的端口:");int serverPort = input.nextInt();System.out.print("请输入聊天服务发送信息对象的端口:");int targetPort = input.nextInt();System.out.println("聊天系统初始化完毕!");try {//创建聊天对象的收发平台对象DatagramSocket socket = new DatagramSocket(serverPort);//分别启动俩个线程对象new Thread(new checkSend(socket, targetPort), "发送服务").start();new Thread(new checkRecever(socket), "接收服务").start();} catch (SocketException e) {e.printStackTrace();}}
}
发送
import java.io.IOException;
import java.net.*;
import java.util.Scanner;//实现Runnable接口
public class checkSend implements Runnable {private DatagramSocket socket;private int targetPort;public checkSend(DatagramSocket socket, int targetPort) {this.socket = socket;this.targetPort = targetPort;}@Overridepublic void run() {try {//输入要传送的信息Scanner input = new Scanner(System.in);while (true) {String data = input.nextLine();//转换输入信息的数据类型byte[] bytes = data.getBytes();//对数据进行包装DatagramPacket packet = new DatagramPacket(bytes, bytes.length, InetAddress.getByName("127.0.0.1"), targetPort);//发送信息socket.send(packet);}} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
}
接收
import java.net.DatagramPacket;
import java.net.DatagramSocket;public class checkRecever implements Runnable {private DatagramSocket socket;public checkRecever(DatagramSocket socket){this.socket = socket;}@Overridepublic void run() {try{byte [] bytes = new byte[1024];DatagramPacket packet = new DatagramPacket(bytes,bytes.length);while (true){//接收传过来的信息socket.receive(packet);String str = new String(packet.getData(),0,packet.getLength());System.out.println("收到"+packet.getAddress()+":"+packet.getPort()+"发送数据:"+str);}}catch (Exception e){e.printStackTrace();}}
}
效果
【Java-网络编程】一对一聊天系统的实现相关推荐
- Java网络编程,一对一聊天
Java网络编程,一对一聊天 **这个小任务是来自于B站,他的视频名字就是"Java实现实时聊天互动程序"** 要求:就是有2个类,其中一个客户端和一个服务端.要实现从客户端发消息 ...
- Java 网络编程(超级详细)
前言:本文是初学Java网络编程时所记录的学习笔记,方便以后查阅学习,同时也作为资料总结分享给大家,如果有问题欢迎指出!! 1. 网络编程 1.1 网络编程基本概念 1.网络 将不同区域的电脑连接到一 ...
- JAVA 网络编程技术学习笔记
目录 一.网络编程基本概念(了解) 1.1 计算机网络 1.2 网络通信协议 1.2.1什么是网络通信协议 1.2.2 OSI七层协议模型 1.2.3网络协议的分层 1.3数据的封装和解封 1.4 I ...
- Java 网络编程基础知识
Java 网络编程基础知识 基础概念 计算机网络的基本概念 网络:多台计算机使用网络设备互联在一起,计算机之间可以进行通信,这样就组成了一个计算机网络. 网络设备:集线器(HUB),路由器,交 ...
- Java网络编程,使用Java实现UDP和TCP网络通信协议,以及基于UDP的在线聊天室。
文章目录 前言 一.网络编程概念 1.网络 2. 网络编程的目的 3.想要达到这个效果需要什么 4.网络分层 二.网络编程Java类 1.IP地址:InetAddress 2.端口 3.TCP连接 3 ...
- java 密钥工厂 desede_20145212 实验五《Java网络编程》
20145212 实验五<Java网络编程> 一.实验内容1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代 ...
- Java学习总结:52(Java网络编程)
Java网络编程 开发第一个网络程序 java.net包提供了网络编程有关的开发工具类,在此包中有一下两个主要的核心操作类. ServerSocket类:是一个封装支持的TCP协议的操作类,主要工作在 ...
- Java - 网络编程(NetWork)
Java - 网络编程(NetWork) 一.java.net包下的 InetAddress 类的使用: > 一个 InetAddress 代表着一个IP地址 > 主要用来查看本机的IP和 ...
- 【Java】 Java网络编程总结
一.网络编程三要素: IP地址:每个设备在网络中的唯一标识. 端口号:每个程序在设备上的唯一标识. 协议:为计算机网络中进行数据交换而建立的规则或约定的集合. UDP: 面向无连接,数据不安全,速度 ...
- Java网络编程笔记5
在Java网络编程笔记4中我们看到了客户端与服务器通信的过程,只是在前面的程序只是单个客户端与服务器通信 的例子. 接下来我们看如何实现多个客户端与服务器通信,对于服务器来说,它要为每个客户端请求的S ...
最新文章
- golang runtime.systemstack 泄漏排查
- IOS开发入门环境搭建输出helloworld
- python识别人脸多种属性_人脸检测及识别python实现系列(4)——卷积神经网络(CNN)入门...
- 日志长度_Kafka 日志存储详解
- 前端学习(270):百度弹性导航
- Android面试基础一
- ORA-06502: PL/SQL: numeric or value error: character to number conversion error 错误的解决方法...
- Ubuntu安装好后,没有网络怎么办?
- 微博粉丝精灵_微信全国500强、微博粉丝数省内领先……看快报这群年轻人如何运营一个个人气平台...
- 内置RTK北斗高精度定位的智能安全帽完成调试,上报至smarteye平台
- 天融信EDR或企业安全终端卸载需要密码解决办法
- win10虚拟机安装linux
- php防止恶意注册,WordPress防恶意注册-添加验证码功能 | 逗哥-架构师之路
- Cortex-M3 处理器内核
- Android All flavors must now belong to a named flavor dimension
- 数据库原理及MySQL应用 | 数据库安全加固
- 失业在家:有工作能力但是没有工作机会
- 阿里云服务器vCPU和CPU有什么区别?
- python恢复手机数据的软件_有什么万能的手机数据恢复软件吗?
- .net的域名是什么
热门文章
- 中学计算机课小课题,信息技术小课题研究题目大全
- 【Python】详解pandas的isin索引和~反向索引
- Reactor3 Mono
- win10麦克风直接输出声音_win10系统音频前后同时有声音输出的技巧
- jupyter notebook如何导入excel数据
- 读书笔记(十五)--将才
- 树莓派 无线网卡服务器,树莓派(Raspberry Pi)USB无线网卡配置方法
- eureka自我保护机制EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY‘RE NOT
- RedHat6.6安装thefuck工具,自动纠正错误命令
- 微信开发者模式demo