Java–实现(同局域网)简单聊天案例
(代码如下,需要练习请自取)
注:下列都需要在idea中完成,客户端和服务端都要运行才可链接一者断开两者程序都结束运行

单线程

只能实现一个客户端连接

客户端


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.SocketException;
import java.util.Scanner;public class Client {public static void main(String[] args) {//客户端try{Socket c = new Socket("127.0.0.1",6666);//此处ip地址为客户端ip//“6666”为服务端设置的口令相当于密码PrintWriter out = new PrintWriter(c.getOutputStream()); //发信息BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream())); //接信息while(true) {//发信息System.out.println("发信息:");String msg = new Scanner(System.in).nextLine() + "\r\n";out.write(msg);out.flush();//先收信息String info = br.readLine();System.out.println(info);}}catch(Exception e){e.printStackTrace();}}
}

服务端


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;public class Server {public static void main(String[] args) {//List<Socket> lists = new ArrayList<>();//服务器try {//System.out.println(InetAddress.getLocalHost().getHostAddress());ServerSocket server = new ServerSocket(6666);//“6666”设置口令相当于密码Socket c = server.accept();System.out.println("有人上线");PrintWriter out = new PrintWriter(c.getOutputStream()); //发信息BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream())); //接信息while (true) {//先收信息String msg = br.readLine();System.out.println(msg);//发信息System.out.println("发信息:");String info = new Scanner(System.in).nextLine() + "\r\n";out.write(info);out.flush();}//while(true) {//    Socket c = server.accept();//中断//    lists.add(c);//    System.out.println("有人连线");//}} catch (Exception e) {e.printStackTrace();}}
}

多线程

能实现多个客户端连接服务端

服务端

服务端的实现方法

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.util.Scanner;public class ChatUtil {private PrintWriter writer;private BufferedReader reader;private String title;public ChatUtil(PrintWriter writer, BufferedReader reader, String title) {this.writer = writer;this.reader = reader;this.title = title;}/*** 发信息*/public void a() {while (true) {//发信息String info = title + ":" + new Scanner(System.in).nextLine() + "\r\n";writer.write(info);writer.flush();}}public void b() {while (true) {try {//先收信息String msg = reader.readLine();//System.out.println(msg);} catch (Exception e) {e.printStackTrace();}}}public PrintWriter getWriter() {return writer;}public void setWriter(PrintWriter writer) {this.writer = writer;}public BufferedReader getReader() {return reader;}public void setReader(BufferedReader reader) {this.reader = reader;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}}
服务端的执行程序

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String[] args) {try {ServerSocket server = new ServerSocket(6666);Socket c = server.accept();PrintWriter writer = new PrintWriter(c.getOutputStream());BufferedReader reader = new BufferedReader(new InputStreamReader(c.getInputStream()));ChatUtil cu = new ChatUtil(writer,reader,"服务器");new Thread(cu::a).start();new Thread(cu::b).start();}catch (Exception e) {e.printStackTrace();}}
}

客户端


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;public class Client {public static void main(String[] args) {try{Socket c = new Socket("127.0.0.1",6666);PrintWriter writer = new PrintWriter(c.getOutputStream());BufferedReader reader = new BufferedReader(new InputStreamReader(c.getInputStream()));ChatUtil cu = new ChatUtil(writer,reader,"客户");new Thread(cu::a).start();new Thread(cu::b).start();}catch(Exception e){e.printStackTrace();}}
}

【Java--实现(同局域网)简单聊天案例】相关推荐

  1. java多线程创建一个简单的案例

    1.创建一个简单的线程,不需要去创建个Runnable Thread thread = new Thread(new Runnable() {@Overridepublic void run() {/ ...

  2. Java实现的一个简单聊天软件

    介绍 这是我自己学习Socket时写的,用到了多线程,Socket的知识,还有Java的IO技术,并且做了一个Java的UI,废话不多说,先上效果图 SendThread 这个类是用来实现数据的发送的 ...

  3. JAVA基于局域网的聊天室系统(源代码+论文)

    毕业论文 局域网聊天室系统的设计与实现 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名(职称): 论文提交日期: 基于局域网的视频聊天室系统的设计与实现 摘 要 视频聊天系统作为一种新型 ...

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

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

  5. java 网络编程简单聊天_网络编程之 TCP 实现简单聊天

    网络编程之 TCP 实现简单聊天 客户端 1.连接服务器 Socket 2.发送消息 package lesson02;import java.io.IOException;import java.i ...

  6. java web利用mvc结构实现简单聊天室功能

    简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是:         1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进 ...

  7. java扫描局域网中可用ip_使用java线程扫描局域网ip简单方案

    package com.cjh.thread; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...

  8. java jsp聊天系统_java web实现简单聊天室

    目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...

  9. Java网络编程以及简单的聊天程序

    网络编程技术是互联网技术中的主流编程技术之一,懂的一些基本的操作是非常必要的.这章主要讲解网络编程,UDP和Socket编程,以及使用Socket做一个简单的聊天软件. 全部代码下载:链接 1.网络编 ...

最新文章

  1. 短序列拼接软件velvet简介
  2. Java开发必会的Linux命令
  3. Linux tomcat日志分割按天分割
  4. c语言编写期末考试成绩,C语言期末考试卷(A卷含答案).doc
  5. 【MySQL】ERROR 1055 (42000) ROUP BY clause this is incompatible with sql_mode=only_full_group_by
  6. python的神经网络模块接法图解_图神经网络库PyTorch geometric
  7. python先序中序后序的非递归版本
  8. 多人共享协作画板——多人画板
  9. Cannot negotiate authentication mechanism svn: Unable to connect to a repository at URL 'svn://gite
  10. 期货连续合约跳空处理
  11. ps的cc版本安装包以及破解包
  12. Steam帐号被盗怎么办
  13. 仓库货架通道宽度的设计要求和注意事项
  14. bouncycastle
  15. 纯php 给pdf加水印,如何使用PHP为现有PDF文件添加水印?
  16. 便携电源快充方案 30W自动升降压PD快充
  17. html如何让table表格垂直(上下)居中
  18. 诚之和:绿茶等茶凉上市? 单店日均销售额降盈利指标不敌同行
  19. 十四、圣经是蒙恩的凭藉
  20. php连接mysql测试脚本,php MySQL连接测试

热门文章

  1. 【逗老师的小技巧】win10 l2tp ipsec 无法连接解决方案
  2. 计算机课作业在线管理,数学与计算机学院课程作业规范化管理办法
  3. 『创意欣赏』60款惊艳的 iOS App 图标设计《第四季》
  4. 安卓版 Xmind 1.3.7 — 思维导图工具
  5. 数字电路-NE555脉冲电路
  6. jsp 上传转码_Java实现视频网站的视频上传、视频转码、及视频播放功能(ffmpeg)...
  7. 117页数字化转型与产业互联网发展趋势及机会分析报告(PPT)
  8. OA系统二:项目介绍:需求介绍;功能展示;
  9. 顶级创业者的思维方式
  10. 2D游戏入门——小狐狸系列(六)为人物添加动画