java NIO 实例之多人聊天】的更多相关文章

关键抽象 1.定义一个HashMap<String,SocketChannel>用户存储每个用户的管道. 2.服务端监听read事件,获取消息后轮询hashmap发送消息给用户模型内的所有用户 3.客户端简单read事件,读取聊天消息:发送消息给服务端 1.服务端代码 package com.leam.springboot.nio; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.By…
一个多客户端聊天室,支持多客户端聊天,有如下功能: 功能1: 客户端通过Java NIO连接到服务端,支持多客户端的连接 功能2:客户端初次连接时,服务端提示输入昵称,如果昵称已经有人使用,提示重新输入,如果昵称唯一,则登录成功,之后发送消息都需要按照规定格式带着昵称发送消息 功能3:客户端登录后,发送已经设置好的欢迎信息和在线人数给客户端,并且通知其他客户端该客户端上线 功能4:服务器收到已登录客户端输入内容,转发至其他登录客户端. 功能5 TODO:客户端下线检测  方案是:客户端在线的时候…
swing+socket实现多人聊天程序 1.准备工作 先看效果: 客户端项目结构图: 服务端项目结构图: 2.运行原理 服务端 先开一个线程serverListerner,线程中开启一个Serversocket 用Serversocket.accept()监听指定端口 一旦有socket连接进来,就为该socket开启一个线程,用于读取该socket输入流的信息,一旦有信息,就通知其他客户端 并将线程保存到Vector<ChartThread> 集合内,交给ChatThreadManager…
import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** * User: HYY * Date: 13-10-29 * Time: 下午9:57 * To change this template use File | Settings | File Templates. */ public class Server { public static f…
最近写了个Java NIO聊天室聊天的程序,NIO学习起来比较困难的,我的代码能给大家起到一个抛砖引玉的作用! 服务端: package test.javanio; /** * @author * @version * CreateTime:2010-12-1 下午05:12:11 * Description: */ import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer;…
在工作之余花了两个星期看完了<Java NIO>.整体来说这本书把NIO写的非常具体,没有过多的废话,讲的都是重点,仅仅是翻译的中文版看的确实吃力.英文水平太低也没办法,总算也坚持看完了.<Java NIO>这本书的重点在于第四章解说的"选择器",要理解透还是要重复琢磨推敲.愚钝的我花了大概3天的时间才将NIO的选择器机制理解透并能较熟练的运用.于是便写了这个聊天室程序. 以下直接上代码.jdk1.5以上经过測试,能够支持多人同一时候在线聊天: 将下面代码拷贝到…
对Java nio socket与as3 socket连接的简单应用 <ignore_js_op>Java nio socket与as3 socket连接的应用实例.rar (9.61 KB, 下载次数: 1691) 这个从基本的弄起太复杂了,我弄个了mina与flash通信的,通信数据模式是dataLength+data(数据长度+数据内容),对于socket字节流通信,我习惯用这种方式,方便粘包解码处理.其中已包含所需的jar包,客户端代码须另自写,不可沿用.flash socket发送的…
Java NIO是在jdk1.4开始使用的,它既可以说成“新I/O”,也可以说成非阻塞式I/O.下面是java NIO的工作原理: 1. 由一个专门的线程来处理所有的 IO 事件,并负责分发. 2. 事件驱动机制:事件到的时候触发,而不是同步的去监视事件. 3. 线程通讯:线程之间通过 wait,notify 等方式通讯.保证每次上下文切换都是有意义的.减少无谓的线程切换. (1)Java NIO的服务端只需启动一个专门的线程来处理所有的 IO 事件,这种通信模型是怎么实现的呢? java NI…
java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端 启动界面如下图: 首先启动服务器: 客户端登陆,登陆成功后为: 默认发送是全部用户,是多人发送. 当在边列表里面选择了用户后,可以与此用户建立点对点链接进行聊天,可以发送文件. 用户在线离线状态会实时更新,如果离线,则存为离线消息.当下次上线的时候,会接受到离线消息 从一个用户接受文件的同时,还可以接受从服务器发过来的文件 接受文件完成后,显示记录,并显示保存目录 消息发送演示 服务器端代码: impo…
第1部分 TCP和UDP TCP:是一种可靠地传输协议,是把消息按一个个小包传递并确认消息接收成功和正确才发送下一个包,速度相对于UDP慢,但是信息准确安全:常用于一般不要求速度和需要准确发送消息的场合. UDP:是一种不可靠的传输协议,常用于视频直播.游戏等及时性比较强的场景. 进行相关编程可以查询API手册. 第2部分 多人聊天室 下面是利用Java的TCP协议的API实现多人聊天室的案例代码: 服务端: 运行在服务端的SeverSocket主要负责: 1 向系统申请服务端口号,客户端是通过…