`
liuyanttkl
  • 浏览: 20324 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

小型CHATROOM分析2

阅读更多
● 发送给指定用户的方法:参数srcName代表发送者,msgContent发送的内容,destName接受消息的人

Public static synchronized sendToOnlyUser(String srcName,String msgContent,String destName)

{

//向客户端队列 的一个遍历发送

msgContent= srcName+”说”+”\r\n”;

//创建一个集合,把实例化了的用户线程队列clientMap放进去

java.util.Set<String > Set=clientMap.keySet();

java.util.Iretarator keyIT= Set.iterator();

while(keyIT.hasNext())

{

String keysUser= keyIT.next();

ProcessClient pc=clientMap.get(keysUser);

//开始向一个指定的对象发送消息

If(keysUser.equalsIgnoreCase(destName))

{

System.out.println(“进入私人聊天时间!”);

msgContent= srcName+”对你说”+ msgContent+”\r\n”;

pc.sendToClient(srcName,msgContent);

}

}

}








2:创建独立线程,处理对应客户端Socket请求的类

Public class ProcessClient extends Thread

{

Public ProcessClient(java.net.Socket client)

{

This.client=client;

}

Public void run()

{


}

//处理客户端的连接

Public void chatClient(java.net.Socket socket)

{

Try{

This.userAddress= socket.getRemoteSocketAddress.toString();

Java.io.InputStream ins= socket.getInputStream();

Java.io.OutPutStream ous=socket.getOutPutStream();

Int i=0;

StringBuffer sb=new StringBuffer();

username=getUserName(ins ,ous);

//输入用户名成功将自己加入到对象列表中

UserManager.addUserThread(username,this);

String msg= username+”在登陆前有”+UserManager.getOnlineCount()+”人”;

UserManager.sendToAllUser(“系统”+ msg);

String msgToOnly;

While(true)

        {  

I=ins.read();

//客户端回车 代表消息已经发送完毕

If(i==13)

{

String s=sb.toString();


}


}


}

Catch(Exception e)

{


}


}

//得到用户名

Public String getUserName(java.io.InputStream ins,java.io.OutputStream ous)

{

String userName=””;

Try{

Int i=0;

StringBuffer sb=new StringBuffer();

String welcomeMsg=”你好,欢迎加入聊天室,请输入你的名字:\r\n!”;

Ous.write(welcomeMsg.getBytes());

//读取用户名

If((i=int.read())!=-1)

{

If(int==13)

{

userName=sb.toString();

userName=(ISO2GBK)userName;

}

}

}

Catch()

{}

Return userName;

}

//对消息内容进行编码,以免出现乱码

Public String ISO2GBK(String src)

{

Try{

Src=new String (src.getBytes(“ISO-8859-1”),”GBK”);



}

Catch(Exception e)

{}

}

Private String username;

Private String userAddress;

Private Socket client;

         }


分享到:
评论

相关推荐

    chatRoom

    2. **用户认证与授权**:学习如何使用ASP.NET 2.0的Membership和Roles API来实现用户注册、登录、权限管理等功能。 3. **实时通信**:探究如何通过AJAX或WebSocket技术实现实时聊天,以及这些技术在ASP.NET中的集成...

    chatroom

    通过分析这些组件,开发者可以逐步理解聊天室系统的工作流程,例如如何建立连接、处理并发请求、存储和检索消息,以及如何实现用户身份验证和安全机制。此外,还可以学习到如何利用现代Web技术构建实时交互的应用。

    chatroom_chatroom_

    在IT行业中,聊天室(Chatroom)是一种在线应用程序,它允许用户实时交流和分享信息。"chatroom_chatroom_"这个标题可能是指一个关于聊天室应用的项目或代码库,而"chat room ready code app"描述则表明这是一段已经...

    ChatRoom聊天

    《ChatRoom聊天:MFC与ADO技术在聊天应用中的实践》 在信息技术高速发展的今天,聊天工具已经成为我们日常生活中不可或缺的一部分。"ChatRoom聊天"项目就是这样一个基于MFC(Microsoft Foundation Classes)框架...

    聊天室chatRoom

    1、运行c#于ASP.NET 技术实现聊天室chatRoom功能

    Linux-chatroom.zip

    本项目名为“Linux-chatroom”,通过分析其提供的代码,我们可以深入理解如何在Linux环境下实现多客户端连接并支持群聊、私聊功能。这个项目涉及的技术点主要包括网络编程、多线程、并发处理以及数据通信协议。 1. ...

    ChatRoom(Csocket).rar_ chatroom_Chatroom_csocket_csocket聊天程序

    2. **CSocket类的创建与绑定**:在VC++环境中,开发者首先需要创建一个CSocket对象,并调用其Bind函数将套接字与特定的IP地址和端口号关联起来。这使得其他计算机可以通过这个地址和端口找到并连接到此聊天室。 3. ...

    chatroom(csocket)

    通过对这些源码的学习和分析,你可以深入理解Csocket的工作原理,以及如何利用它来构建实际的网络应用。 总的来说,基于Csocket的简单聊天室实现涉及了网络通信的基本概念,如套接字的创建、连接、监听、数据传输等...

    chatroom_Chatroom_聊天室_sportaqq_chatroom在线_

    【标题】"chatroom_Chatroom_聊天室_sportaqq_chatroom在线_" 指的是一个关于在线聊天室的应用,特别提到了sportaqq和chatroom在线,这可能是一个特定的聊天室服务或者平台,可能与体育或游戏社区有关。 【描述】...

    ChatRoom

    2. **多用户参与**:一个聊天室可以同时容纳多人参与,使得群体讨论和协作成为可能。用户可以设置权限,如管理员可以管理房间,控制发言权限等。 3. **主题设定**:聊天室通常围绕特定主题设立,比如兴趣爱好、学术...

    chatroom_Chatroom_chatroom.com_联合阵线versi_网络聊天室_TheRoom_

    Simple version of the Internet chat room.

    ChatRoom(Csocket)

    2. **TCP/IP协议**:ChatRoom(Csocket) 使用的是TCP(传输控制协议),这是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP保证了数据包的顺序和完整性,适合于需要高可靠性的应用,如聊天室。 3. **...

    chatroom-master_web_

    2. **css** 目录:存放样式表文件,用于定义界面的视觉样式。 3. **js** 目录:包含JavaScript源代码,尤其是处理实时通信和视频录制的核心逻辑。可能有对WebRTC API的调用,以及与服务器的WebSocket或其他HTTP接口...

    聊天室程序(ChatRoom.rar)

    在"ChatRoom.rar"这个压缩包中,我们可能找到的是一个完整的QQ聊天室程序源代码或者编译后的可执行文件。通过分析和学习这个程序,我们可以深入理解以下知识点: 1. **Windows Socket API**:Winsokt API是网络编程...

    8-4 Chatroom.zip(一个小型网络聊天室)

    【标题】"8-4 Chatroom.zip"是一个包含了一个小型网络聊天室的项目,这个项目主要是用Unity3D游戏引擎开发的。Unity3D是一款强大的跨平台3D和2D游戏开发工具,不仅用于游戏制作,也可以应用于创建交互式体验和实时...

    java chatroom

    2. **客户端列表管理**: - 服务器使用`Hashtable`(在Java 7及更早版本中)存储连接到服务器的用户和对应的`Socket`对象,键为用户名,值为`Socket`实例。 - 当接收到"用户:"开头的信息时,服务器会将新登录的...

    javaweb chatroom

    2. **Servlet与JSP协作**: - **Servlet生命周期**:Servlet是JavaWeb应用的核心,负责处理HTTP请求和响应。在这个聊天室中,Servlet可能被用来接收和发送聊天消息。 - **转发与重定向**:Servlet可以使用`...

    WebSocket 聊天室 chatRoom.zip

    在"WebSocket 聊天室 chatRoom.zip"这个项目中,开发者使用了Go语言(golang)来构建一个基于WebSocket的实时聊天应用。 1. **WebSocket API**: WebSocket API 是HTML5引入的一种技术,使得Web应用程序可以实现低...

Global site tag (gtag.js) - Google Analytics