题目:如今微信已经成为人们 生活中必不可少的一款社交软件。本案例要求编写一个程序模拟微信聊天功能,在实现本案例时,要求使用多线程与UDP通信完成消息的发送和接收

代码如下:

SendTask类:

package GGS3;import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;public class SendTask implements Runnable{private int sendport;public SendTask(int sendport) {this.sendport=sendport;}public void run() {try {DatagramSocket ds=new DatagramSocket();Scanner sc=new Scanner(System.in);while(true) {String data=sc.nextLine();byte[] buf=data.getBytes();DatagramPacket dp=new DatagramPacket(buf, buf.length,InetAddress.getByName("127.0.0.255"),sendport);ds.send(dp);}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}
}

ReceiveTask类:

package GGS3;import java.net.DatagramPacket;
import java.net.DatagramSocket;public class ReceiveTask implements Runnable {private int receivePort;public ReceiveTask(int receivePort) {this.receivePort=receivePort;}public void run() {try {DatagramSocket ds=new DatagramSocket(receivePort);byte[] buf=new byte[1024];DatagramPacket dp=new DatagramPacket(buf, buf.length);while(true) {ds.receive(dp);String str=new String(dp.getData(),0,dp.getLength());System.out.println("收到"+dp.getAddress().getHostAddress()+"发送的数据"+str);}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}
}

WaChat类:

package GGS3;import java.util.Scanner;public class WeChat {public static void main(String[] args) {System.out.println("微信聊天欢迎您!");Scanner sc=new Scanner(System.in);System.out.println("请输入账号:");int sendPort=sc.nextInt();System.out.println("请输入您要发送信息的微信号:");int receivePort=sc.nextInt();System.out.println("微信聊天程序启动!!");new Thread(new SendTask(sendPort),"发送端任务").start();new Thread(new ReceiveTask(receivePort),"接收端任务").start();}
}

代码运行如下:

java网络编程案例9-1模拟微信聊天相关推荐

  1. Java网络编程案例--CS模型的简单实现

    Java网络编程案例–CS模型的简单实现 Java网络编程案例CS模型的简单实现 基本概述 程序原理图 源代码 基本概述 该程序采用C/S模型,在服务器端简单的建立了一个多线程类,来实现对多个客户端传 ...

  2. JAVA网络编程NIO实现简易多人聊天室

    BIO模型 BIO即blocking IO,顾名思义是一种阻塞模型.当没有客户端连接时,服务端会一直阻塞,当有客户端新建连接时,服务端会新开一个线程去响应(不用多线程的话服务端同一时刻最多只能接收一个 ...

  3. 【java】模拟微信聊天(网络编程)

    模拟微信聊天(网络编程) 在如今,微信聊天已经人们生活中必不可少的重要组成部分,人们的交流很多都是通过微信来进行的.本案例要求将多线程与 UDP 通信相关知识结合,模拟实现局域网内两位微信好友聊天小程 ...

  4. Java网络编程学习——简单模拟在线聊天

    Java网络编程学习--简单模拟在线聊天 学了java网络,也是该做个小案例来巩固一下了. 本次案例将使用UDP和多线程模拟即时聊天,简单练练手. 1.前提知识 需要知道简单的IO流操作,以及简单的U ...

  5. 使用java网络编程模拟简单网络即时通信

    使用java网络编程模拟简单网络即时通信 通信流程图: 解析: 1.在上图中我们可以看出对于任何一个客户端,都由两部分构成,发送端和接收端(分别由两个线程来维系) 2.客户端在每一次请求链接时都会轮询 ...

  6. Java网络编程,模拟QQ群聊功能

    Java网络编程,模拟QQ群聊功能 一.网络编程知识点简介: 1.C/S架构:Client客户端/Server服务器: 涉及到的应用:桌面的应用软件,QQ,王者荣耀 涉及到的技术:Socket网络编程 ...

  7. Java 学习之网络编程案例

    网络编程案例 一,概念 1,网络编程不等于网站编程 2,编程只和传输层打交道,即TCP和UDP两个协议 二,案例 1,TCP实现点对点的聊天 Server端:两个输入流:读客户端和控制台,一个输出端: ...

  8. 【带你入门】java网络编程

    网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编 ...

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

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

最新文章

  1. PyTorch中的循环神经网络RNN函数及词嵌入函数介绍
  2. JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
  3. ssh出错 sign_and_send_pubkey: signing failed: agent refused operation
  4. XPath: A Syntax for Describing Needles and Haystacks(Chapter 3 of XSLT 2nd Edition)
  5. 【OpenCV应用】python处理行李图像匹配项目——图像(简单)清晰化
  6. CodeSnippet.info 开源说明 和 环境搭建 (第一版)
  7. C语言:一个五位数,判断其是否为回文数
  8. 校验码(循环冗余校验码)
  9. SQL Server 日期 字符串 格式转换 函数 datetime convert
  10. 流媒体视频网络 Tout 获 2600 万美元 C 轮融资
  11. postgresql - SQL查询某一天内的记录
  12. 语义分割评估指标MIOU
  13. scrcpy投屏教程、及无线投屏
  14. Excel双条件交叉查询
  15. 目前房价、股价下跌。市场出现希望*数市的呼声,请谈请你对救市的看法。
  16. axios 和洋葱模型中间件
  17. Redis-事件机制详解
  18. matlab 傅里叶变换
  19. 2022广东省安全员B证第三批(项目负责人)特种作业证考试题库及答案
  20. Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide 阅读翻译(二)

热门文章

  1. 现有一列表 ls = [‘the lord of the rings’,‘anaconda’,‘legally blonde’,‘gone with the wind’]
  2. nodejs下上传文件formidable、multer、body-parser的区别
  3. Linux hook系统调用open/read/write
  4. Android中输出版权标记符号Copyright mark
  5. MATLAB 制作抖音同款 立体人物文字海报
  6. Spring Security认证_Remember Me
  7. kmp, 字符串相同前后缀
  8. 构建乘积数组[前后缀优化]
  9. 【计算机毕业设计】视频教学管理系统
  10. JDO示例 - JPOX