【我的代码】java初级练手小项目--局域网聊天室

java大作业网络聊天室 这个项目是我大一的java期末大作业,学习了一个学期的成果,编程能力不够,做的并不够好,写在这里记录一下自己的成长,也欢迎大家给出宝贵意见! 该篇博客写一个基于java的单/多人网络即时聊天室,聊天室 ... 阅读详情

写这个项目已经很久以前的事了,但现在还是想拿出过一遍,一来是和java初学者分享一下,再者自己在复习的过程中也能有些收获,温故知新。

先挖个坑,有空就来填两抔。

代码上传到了优快云,分别有两个jar包,先运行service,再运行client。

链接:http://download.youkuaiyun.com/detail/github_34012015/9586922


放一些截图:


登录界面






进入聊天室后的界面:



再有其他人进入聊天室,就可以聊天了



默认是对所有人说话,也可以选中@某人,再勾上发私信选项的话,消息会在对方的私信面板中出现。



联系人列表



修改昵称



大喇叭通知所有人谁改了昵称



退出登录






Java Socket实现多人聊天室---swing做UI 今天翻硬盘的workspace发现一个Java Socket实现多人聊天室的源码,不记得是什么时候的事情了,貌似不是我写的。但写得还不错,   至少算个有模有样的聊天室工具。我简单的修改了一下,拿出来跟大家分享一下,仅供参考。。。            界面是用swing 阅读详情

相关推荐

Java聊天室:流的练手小项目

通过利用流,我们能够做一些很有趣的操作,比如文件的读写复制,消息的传输等等,基于此,再结合一些简单的线程、网络编程的知识,就可以实现一个简单的聊天室功能。那么先说我们的需求:实现一个局域网内多人通讯的功能,且结构是有一个服务器端,多个客户端,同时是基于TCP的传输。基于以上需求,可以思考以下问题:客户端可以通过一个发送线程一个接收线程实现,那么客户端呢,该怎么设计线程?客户端向服务器发送消息时需要...

baiyang_的博客 1243

推荐几个适合新手的Java练手项目(好玩又有趣)

适合新手的Java练手项目

naonao2023的博客 8134

Java实现局域网TCP/Sockets多人聊天室项目

TCP协议,即传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。它设计的初衷是为了提供可靠的通信服务,保证数据包能够顺序、完整地在网络中传输。TCP协议具有以下几个显著特点:面向连接:在数据传输之前,TCP协议要求通信双方建立一个连接,这个过程称为“三次握手”。连接一旦建立,就可以保证数据传输的顺序性和可靠性。当数据传输结束后,双方需要进行“四次挥手”来关闭连接。可靠传输:TCP通过序列号、确认应答、超时重传等机制保证了数据包传输的可靠性。

weixin_42311427的博客 837

Java 项目学习(初始化项目)

后端工程基于 maven 进行项目构建,并且进行分模块开发。

kiku 575

java初级项目

本项目使用SSM框架进行搭建项目环境,并通过项目实践熟悉restful风格/SSM中的基本配置/前后端的传输,需要知识:java基础/HTML基础/JScript基础/SSM基础

java新手8个小项目

特别适合java新手巩固java基础的项目,总共有8个项目的全部代码,都可以直接运行,代码有注释。

Java基础小项目

基础的Java项目

Jacksjie的博客 1447

java初级练手小项目--局域网聊天室

个人做的一个聊天室,用的是java,用到动态数组,内部类,接口,socket编程等等JAVA基础内容,对于java初级学习者可以用来练练手。

10个优质的Java练手项目

10个优质的Java练手项目 最近有很多小伙伴私信我说推荐几个毕设项目,还有就是学了Java有一段时间了,想找几个项目想练练手,在面试的时候也可以增加一点项目经验。 在这里我收集了10个可以直接导入运行的项目。 由简单到复杂,分别为: 1、二手拍卖系统 这个系统我之前介绍过,是基于Nutz+JSP搭建的,Nutz可以理解为这是一个轻量级的MVC框架。 主要功能模块分为: 用户模块 订单模块 商品模块 管理员模块 后台管理员发布商品,前端用户登录即可预览商品,进行下单。 ...

m0_60720143的博客 3万+

java初级项目(一)

这个是Java的初级练习小项目,涉及到的内容有:基础语法/集合的使用/IO读写流/异常处理/

java聊天室实验报告

一、实验目的 1.能在程序中熟练应用数据流技术; 2.掌握Java 多线程的创建技术; 3.熟悉线程调度和控制技术; 4.能在程序中熟练应用Java 多线程技术; 5.熟悉Java C/S程序的结构和工作原理; 6.能开发客户端应用程序; 7.会编写服务器端多线程应用程序。 8.熟悉Java 数据库连接方法,能在程序中读写数据库。 二、实验内容 Java多线程与C/S综合应用程序设计(C/S聊天系 统、ftp程序等)。

Java基础小项目(纯java基础练手小项目,可以自己试一试)

1.主界面2.菜单3.点菜4.查看已下单的菜品5.删除已下单的菜品6.买单。

caicaixueC的博客 1478

从硬件异常到代码救赎:RH850内存访问错误(MAE)的深层诊断与艺术

本文深入探讨瑞萨RH850微控制器的内存访问错误(MAE)诊断与解决方法。针对程序跑飞和Flash Driver交互中的潜在陷阱,提供系统性硬件异常分析框架和防御性编程实践,帮助嵌入式开发者从底层机制到代码层面有效预防和修复MAE问题,提升系统稳定性。

pytorch8learner的博客 195

JAVA实现聊天室(局域网)

JAVA用局域网实现聊天室 类和接口 Server类(服务器端) package Test; import java.io.IOException; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; public class Server { private static final int SERVER_PORT=30000; //使用CrazyitMap对象来保存每

weixin_45821324的博客 3197

保姆级教程:用ComfyUI+LTX-Video插件,5分钟搞定你的第一个AI视频(RTX 4060实测)

本文提供了一份详细的ComfyUI与LTX-Video插件使用指南,帮助用户在RTX 4060显卡上快速生成AI视频。从环境部署到图形化操作,再到提示词优化和性能调优,全面覆盖AI视频生成的各个环节,让零基础用户也能轻松上手。

weixin_33743661的博客 136

Unity集成抖音小游戏:从IL2CPP配置到SDK接入全流程解析

本文详细解析了使用Unity开发抖音小游戏的完整流程。从关键的IL2CPP编译后端配置、PlayerSettings设置,到StarkSDK的接入与资源优化(如AutoStreaming),再到激励视频广告、录屏分享等核心功能的代码实现,提供了从环境准备到打包上传的全方位实战指南,帮助开发者高效完成技术适配。

weixin_27943395的博客 689

java局域网聊天室小项目架构思路

本文介绍了基于Java开发的局域网聊天室项目架构思路。项目分为客户端和服务器端,使用Swing构建GUI界面,实现多用户在线聊天和私聊功能。客户端包含登录界面(含昵称输入和验证)和聊天主界面(显示聊天区、用户列表和消息输入)。服务器端负责处理客户端连接、消息转发和用户管理。技术栈包括Java网络编程、多线程、面向对象和GUI开发。服务器采用TCP协议保证稳定传输,通过多线程处理并发连接。项目采用模块化设计,先构建服务器端再开发客户端逻辑。

2401_88685396的博客 698

【硬件】通俗易懂的讲解晶体管(三极管和MOS管)的工作原理

晶体管是一个简单的元器件,可用于构建许多有趣的项目。在本文中,我将用通俗易懂的语言给您讲解晶体管的工作原理,以便您可以在电路设计中更好的使用静态管。一旦你学习这些基础知识,对以后的设计和使用来说,将会变得非常容易。我们将重点介绍两种最常见的晶体管:双极型晶体管(三极管)和MOSFET。晶体管的工作原理其实是类似于电子开关。它可以打开和关闭电路。一个简单的思考方法是将晶体管视为无源的继电器。晶体管类似于继电器,从某种意义上说,您可以使用它来打开和关闭某些东西。但晶体管也可以部分导通,一般在放大电路中使用,这部

1万+

简单局域网聊天室--Java版

Java 的Socket编程: 1、TCP协议是面向连接的、可靠的、有序的、以字节流的方式发送数据,通过三次握手方式建立连接,形成传输数据的通道,在连接中进行大量数据的传输,效率会稍低 2、Java中基于TCP协议实现网络通信的类             客户端的Socket类             服务器端的ServerSocket类                        ...

yundanfengqingfeng的专栏 9605

【2025年华为秋招(AI)-11月19日-第二题(200分)- 终端款型聚类识别】(题目+思路+Java&C++&Python解析+在线测试)

该摘要总结了题目要求、输入输出格式、KMeans算法的实现步骤以及关键点。以下是150字内的摘要: 本文提出基于KMeans算法对终端型号进行聚类的方法。通过包间隔时长、连接持续时长、漫游前后信号强度4个特征,使用欧氏距离度量相似度。算法采用固定初始化策略(前k个样本作为初始质心),经过分配-更新迭代,直至质心移动小于1e-8或达到最大迭代次数。最终输出各簇样本数并按升序排列,解决了终端型号自动分类问题。示例显示该方法能有效识别3-4类终端,并准确统计每类数量。

m0_73659489的博客 141

【学习系列】SAP RAP 2:创建第一个RAP应用

本文介绍了从零开始创建基于SAP RAP(ABAP RESTful Application Programming Model)的Fiori应用的完整流程。首先说明了学习RAP需要结合官方文档和教程,并提供了相关资源链接。文章详细讲解了开发环境的准备要求,包括系统版本、开发工具和基本知识。重点演示了如何通过8个步骤创建支持CRUD操作和草稿功能的RAP应用:1)创建数据库表;2)定义CDS视图实体;3)创建投影视图;4)定义行为;5)创建行为投影;6)定义服务;7)绑定服务;8)添加UI注解。

DeveloperMrMeng的博客 1496

JAVA简单聊天室的实现

JAVA简单聊天室的实现 期末的课程设计,做的并不够好,写在这里记录一下自己的成长,也欢迎大家给出宝贵意见 # 主要知识点 网络编程 GUI(图形用户界面) 多线程 #实现功能 客户端:注册 登录 群聊 私聊 服务器端:显示用户上线/下线 登录日志及聊天信息的保存及查看 一 . 客户端主要思路 登录及注册功能的实现 功能快捷键 撤销:Ctrl/Command + Z 重做:Ctrl/Comm...

TKFEET的博客 4363

让 ABAP 内表真正释放内存:从 CLEAR、FREE 到打破 Table Sharing 的实战技巧

ABAP内表内存管理的关键在于理解其运行时结构:DELETE操作仅逻辑删除行而不会释放内存,CLEAR或FREE才能真正回收内存。常见的误区包括误判空表状态和忽视内表共享机制。实际应用中,大表筛选后应采用VALUE表达式或逐行插入方式重建表体以释放内存。典型案例显示,正确处理内表内存可显著降低SAP Gateway和批处理程序的内存消耗,提升系统稳定性。开发时需结合调试工具观察内存状态,避免因共享机制导致无效回收。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 324

Java实现多线程局域网聊天室

局域网聊天室 在学习了一个学期的java以后,觉得java真是博大精深,彻底放弃了因为c++而轻视java的心态,搞了一个多线程的聊天室,熟悉了一下服务器和客户机的操作。 1.TCP 要实现局域网连接,就必须知道信息传输的原理。 在局域网里面传输的信息都是以包的形式,我使用的TCP包传输数据,TCP包里面封装了IP报文。 下面这句话就是通过一个静态IPV4协议的类得到一个服务器的IP地址。 address = InetAddress.getByName("192.168.43.86"); 2.套接字 在T

一只懒猫的博客 3909

倒立摆的PLC控制(模型分析+ SCL源代码)

首先简单介绍下倒立摆模型,下面这幅图是MATLAB网站上的倒立摆模型,下面我们利用牛顿第二运动定律建立摆杆的运动方程。

RXXW_Dor的博客 3327

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

基于局域网的Java聊天室系统源码及论文

基于局域网的Java聊天室系统源码及论文 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供了适合练手、课程设计和毕业设计的Java项目源码,项目名称为“基于局域网的聊天室系统”。该系统源码包含了完整的实现代码以及相应的论文文档,可供学习和研究使用。 项目简介 本项目是一个基于Java的局域网聊天室系统,实现了基本的即时通信功能。用户可以在局域网内进行文字消息的收发,适用...

gitblog_06773的博客 763

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 【解决】Adobe premiere CC 已停止工作
下一篇: 【照虎画猫】京东首页商品菜单列表的实现
AndrewJoe
博客等级 码龄11年 13粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值