Server 代码
package com;
import java.net.*;import java.io.*;import java.util.*;
public class Server { public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(8001); List<Socket> ss = new ArrayList<Socket>(); while (true) { Socket socket = server.accept(); ss.add(socket); new ServerThread1(socket).start(); } // socket.close(); // server.close(); }}
class ServerThread1 extends Thread { private Socket socket;
public ServerThread1(Socket socket) { this.socket = socket; }
public void run() { PrintWriter out = null; BufferedReader in = null; try { out = new PrintWriter(socket.getOutputStream()); in = new BufferedReader(new InputStreamReader(socket .getInputStream()));
String s = in.readLine(); System.out.println(s + "上线了"); out.println(s + "上线了"); out.flush();
s = in.readLine(); while (s != null && !s.equals("quit")) {
System.out.println(s);
out.println(s);
out.flush();
s = in.readLine(); } } catch (Exception e) { e.printStackTrace(); } finally { try { in.close(); out.close(); socket.close(); } catch (Exception e) {
} } }}
Client代码
package com;
import java.net.*;import java.io.*;
public class Client {
public static void main(String[] args) throws Exception { Socket socket = new Socket("127.0.0.1", 5001); // BufferedReader sin = new BufferedReader( new InputStreamReader(System.in)); PrintWriter out = new PrintWriter(socket.getOutputStream()); String cname = args[0]; out.println(cname); out.flush(); new ClientThread1(socket).start();//
String c = sin.readLine(); while (!c.equals("quit")) { out.println(cname + "说:" + c); out.flush(); c = sin.readLine(); }
out.close(); socket.close(); }}
class ClientThread1 extends Thread { private Socket socket;
public ClientThread1(Socket socket) { this.socket = socket; }
public void run() { BufferedReader in = null; try { in = new BufferedReader(new InputStreamReader(socket .getInputStream())); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } while (true) { String s; try { s = in.readLine(); System.out.println(s); } catch (IOException e) { // TODO Auto-generated catch block // e.printStackTrace(); break; } } }}
如有错请帮忙改正!
分享到:
相关推荐
【Java实现简单群聊系统详解】 在信息技术领域,开发一个基于Java的简单群聊系统是一项常见的练习,旨在提升开发者在网络编程、多线程以及数据交互等方面的能力。本项目主要涉及的技术栈包括Java语言基础、Socket...
【聊天室(群聊私聊)】 在互联网通信领域,聊天室是一种常见的在线交流平台,它允许用户实时发送文本、语音、图片等信息,进行群体或个人间的互动沟通。聊天室分为两种主要类型:群聊和私聊,这两种模式各有其特点...
ejabberd是一款开源的XMPP服务器,常用于构建实时通信系统,如即时消息(IM)、群聊等。XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放标准,用于实现即时通信和在线状态传输。在这个场景...
在IT行业中,群聊功能是社交媒体、即时通讯应用的核心组成部分之一。群聊图片,也称为群头像或群组照片,是用户识别和区分不同群组的重要标识。本项目"群聊图片的简单实现"专注于生成包含群内成员头像的群聊图片,这...
在Openfire中,群聊功能是其核心特性之一,它支持多人同时在线交流。然而,标准的Openfire配置可能会遇到一个问题:当用户退出群聊房间后,该房间可能会被销毁,导致所有聊天记录丢失,这对于需要保留历史记录的团队...
Java开发基于SpringBoot+WebSocket+Redis分布式即时通讯群聊系统。一个基于Spring Boot + WebSocket + Redis,可快速开发的分布式即时通讯群聊系统。适用于直播间聊天、游戏内聊天、客服聊天等临时性群聊场景。 ...
【群聊(GroupChat)】实现详解 群聊功能在现代即时通讯软件中扮演着至关重要的角色,它允许用户创建并参与多人对话,是社交、协作和信息分享的有效平台。本项目通过C++编程语言实现了类似QQ的群聊功能,且已在...
4. **群聊功能**:群聊是即时通讯系统中的重要特性,允许多个用户在一个聊天室中交流。实现群聊通常需要处理用户加入、退出群聊、群消息广播等问题。在数据库设计上,可能需要维护用户与群聊的关联关系,以及存储...
本项目以"socket编程(实现群聊功能+界面清晰)"为主题,旨在创建一个支持多客户端实时交流的群聊系统,同时提供了图形用户界面(GUI)以提高用户体验。以下是关于这个项目的一些关键知识点和实现细节: 1. **...
QT聊天系统实现群聊私聊等功能,主要涉及的是利用QT框架进行网络编程,构建一个类似于QQ的通信应用。QT是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的库来支持GUI设计、网络通信、多线程等功能,...
- **消息传输**:`onMessage`方法处理来自客户端的消息,可以在此将消息广播到所有连接的用户(群聊)或特定用户(单聊)。 - **连接关闭**:`onClose`处理连接关闭事件,通常用于清理资源或更新在线用户列表。 -...
网页群聊源代码是一种实现在线多人聊天功能的技术方案,它基于Web技术,允许用户通过浏览器进行实时交流。这种代码通常由HTML、CSS和JavaScript等前端技术构建,有时也会结合服务器端语言如PHP、Node.js或Python来...
根据提供的文件信息,我们可以总结出以下关于如何使用Java实现群聊功能的知识点: ### Java实现群聊系统的关键组件 #### 服务器端(`ChatServer`类) 1. **初始化ServerSocket**: - 使用`ServerSocket`监听指定...
在本示例中,我们关注的是一个基于WCF的**群聊程序**,这是一项利用WCF特性实现的多用户实时通信应用。 首先,我们要理解**服务器回调技术**。在传统的客户端-服务器模式中,服务器通常只响应客户端的请求。但在...
【聊天室实现群聊与私聊技术解析】 在IT行业中,聊天室的开发是一项常见的任务,尤其是对于在线社交、协作工具或游戏平台来说。本文将深入探讨如何利用JSP(JavaServer Pages)技术来实现一个功能完备的聊天室,...
标题 "一个群聊聊天室代码" 暗示我们正在讨论一个实现群聊功能的软件项目,可能是一个简单的网络聊天应用程序。这个应用包含了客户端和服务器端的代码,使得多个用户可以实时交流。让我们深入探讨一下这个项目的组成...
在linux下的基于TCP/IP,采用socket通信的聊天室,实现进入聊天室,进行多人群聊,指定人进行私聊,群主管理员功能,颗进行禁言,提出群聊等操作。个人账号可修改昵称或者修改密码,还可进行找回密码等功能 基于...
在这个项目中,我们将探讨如何使用UDP来构建一个聊天工具,支持群聊和私聊功能。 1. UDP基础 UDP协议在TCP/IP模型的第四层——传输层工作,它不提供顺序传输、错误校验或重传机制,因此适用于对实时性要求高而对...
【标题】"Web聊天,私聊,群聊。DWR实现。无数据库" 在这个项目中,我们关注的是如何使用DWR(Direct Web Remoting)框架来实现一个无需数据库支持的实时在线聊天应用,包括私聊和群聊功能。DWR是一种在浏览器和...
群聊系统源代码是开发一个多人在线交流平台的核心部分,它包含了实现聊天功能的各种组件和模块。源代码是程序员用编程语言编写的原始程序文本,是软件开发的基础,可以被修改和扩展以满足不同的需求。在这个群聊系统...