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-网络编程】一对一聊天系统的实现相关推荐

  1. Java网络编程,一对一聊天

    Java网络编程,一对一聊天 **这个小任务是来自于B站,他的视频名字就是"Java实现实时聊天互动程序"** 要求:就是有2个类,其中一个客户端和一个服务端.要实现从客户端发消息 ...

  2. Java 网络编程(超级详细)

    前言:本文是初学Java网络编程时所记录的学习笔记,方便以后查阅学习,同时也作为资料总结分享给大家,如果有问题欢迎指出!! 1. 网络编程 1.1 网络编程基本概念 1.网络 将不同区域的电脑连接到一 ...

  3. JAVA 网络编程技术学习笔记

    目录 一.网络编程基本概念(了解) 1.1 计算机网络 1.2 网络通信协议 1.2.1什么是网络通信协议 1.2.2 OSI七层协议模型 1.2.3网络协议的分层 1.3数据的封装和解封 1.4 I ...

  4. Java 网络编程基础知识

    Java 网络编程基础知识 基础概念 计算机网络的基本概念 ​ 网络:多台计算机使用网络设备互联在一起,计算机之间可以进行通信,这样就组成了一个计算机网络. ​ 网络设备:集线器(HUB),路由器,交 ...

  5. Java网络编程,使用Java实现UDP和TCP网络通信协议,以及基于UDP的在线聊天室。

    文章目录 前言 一.网络编程概念 1.网络 2. 网络编程的目的 3.想要达到这个效果需要什么 4.网络分层 二.网络编程Java类 1.IP地址:InetAddress 2.端口 3.TCP连接 3 ...

  6. java 密钥工厂 desede_20145212 实验五《Java网络编程》

    20145212 实验五<Java网络编程> 一.实验内容1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代 ...

  7. Java学习总结:52(Java网络编程)

    Java网络编程 开发第一个网络程序 java.net包提供了网络编程有关的开发工具类,在此包中有一下两个主要的核心操作类. ServerSocket类:是一个封装支持的TCP协议的操作类,主要工作在 ...

  8. Java - 网络编程(NetWork)

    Java - 网络编程(NetWork) 一.java.net包下的 InetAddress 类的使用: > 一个 InetAddress 代表着一个IP地址 > 主要用来查看本机的IP和 ...

  9. 【Java】 Java网络编程总结

     一.网络编程三要素: IP地址:每个设备在网络中的唯一标识. 端口号:每个程序在设备上的唯一标识. 协议:为计算机网络中进行数据交换而建立的规则或约定的集合. UDP: 面向无连接,数据不安全,速度 ...

  10. Java网络编程笔记5

    在Java网络编程笔记4中我们看到了客户端与服务器通信的过程,只是在前面的程序只是单个客户端与服务器通信 的例子. 接下来我们看如何实现多个客户端与服务器通信,对于服务器来说,它要为每个客户端请求的S ...

最新文章

  1. golang runtime.systemstack 泄漏排查
  2. IOS开发入门环境搭建输出helloworld
  3. python识别人脸多种属性_人脸检测及识别python实现系列(4)——卷积神经网络(CNN)入门...
  4. 日志长度_Kafka 日志存储详解
  5. 前端学习(270):百度弹性导航
  6. Android面试基础一
  7. ORA-06502: PL/SQL: numeric or value error: character to number conversion error 错误的解决方法...
  8. Ubuntu安装好后,没有网络怎么办?
  9. 微博粉丝精灵_微信全国500强、微博粉丝数省内领先……看快报这群年轻人如何运营一个个人气平台...
  10. 内置RTK北斗高精度定位的智能安全帽完成调试,上报至smarteye平台
  11. 天融信EDR或企业安全终端卸载需要密码解决办法
  12. win10虚拟机安装linux
  13. php防止恶意注册,WordPress防恶意注册-添加验证码功能 | 逗哥-架构师之路
  14. Cortex-M3 处理器内核
  15. Android All flavors must now belong to a named flavor dimension
  16. 数据库原理及MySQL应用 | 数据库安全加固
  17. 失业在家:有工作能力但是没有工作机会
  18. 阿里云服务器vCPU和CPU有什么区别?
  19. python恢复手机数据的软件_有什么万能的手机数据恢复软件吗?
  20. .net的域名是什么

热门文章

  1. 中学计算机课小课题,信息技术小课题研究题目大全
  2. 【Python】详解pandas的isin索引和~反向索引
  3. Reactor3 Mono
  4. win10麦克风直接输出声音_win10系统音频前后同时有声音输出的技巧
  5. jupyter notebook如何导入excel数据
  6. 读书笔记(十五)--将才
  7. 树莓派 无线网卡服务器,树莓派(Raspberry Pi)USB无线网卡配置方法
  8. eureka自我保护机制EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY‘RE NOT
  9. RedHat6.6安装thefuck工具,自动纠正错误命令
  10. 微信开发者模式demo