本例开发实现了一个多用户的P2P在线聊天程序,C/S结构,客户端可发送消息,然后其他的用户接收到该消息并将其显示在界面中,服务器对信息进行有关处理并向适当的用户发送,同时在服务器端还将显示所有的在线用户,网络管理员即服务器端管理员可选中某用户并将其踢出该聊天室。
本篇为第二篇,如果您是第一次进来请从第一篇开始,此程序不用修改完全可用,第一篇地址:http://java161.iteye.com/blog/616113
2 编写用户实例类(ServerConn.java)
在该用户实例类中,首先建立一个线程来监听该用户所发送的信息,并对该信息进行处理,同时实例化一个输出流用来向该客户发送指定信息:
protected UserThread reader;
protected DataOutputStream outStream;
outStream=new DataOutputStream(clientSock.getOutputStream());
reader=new UserThread(server,clientSock);
reader.start();
向客户端发送信息函数如下所示:
public synchronized void sendString(String str)
{
if(str==null)
{
disconnection();
return;
}
try
{
outStream.writeUTF(str);
}
catch(Exception writeError)
{
writeError.printStackTrace() ;
disconnection();
return;
}
}
程序清单:
package Server;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
import java.net.*;
import java.util.*;
import com.borland.jbcl.layout.*;
import com.borland.jbcl.control.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2010</p>
*
* <p>Company: </p>
*
* @author www.jianfei5u.com
* @version 1.0
*/
public class ServerConn extends Object{
protected SimpleServer server;
protected Socket clientSock;
protected UserThread reader;
protected DataOutputStream outStream;
public ServerConn(SimpleServer server,Socket clientSock)throws IOException
{
this.server =server;
this.clientSock =clientSock;
outStream=new DataOutputStream(clientSock.getOutputStream());
reader=new UserThread(server,clientSock);
reader.start();
}
public synchronized void sendString(String str)
{
if(str==null)
{
disconnection();
return;
}
try
{
outStream.writeUTF(str);
}
catch(Exception writeError)
{
writeError.printStackTrace() ;
disconnection();
return;
}
}
public synchronized void disconnection()
{
try
{
reader.closeConnection();
}
catch(Exception e)
{
reader.stop();
}
}
}
未完待续。。。下篇 编写监听用户信息类
地址:http://java161.iteye.com/blog/616132
分享到:
相关推荐
综上所述,基于Java的P2P多用户在线聊天室项目源码涵盖了许多高级Java技术,包括P2P网络编程、数据库操作、GUI设计、实时通信、安全性和文件共享。对于想深入学习Java网络编程和分布式系统的人来说,这是一个非常有...
基于java的开发源码-P2P--多用户在线聊天室(Java源码).zip 基于java的开发源码-P2P--多用户在线聊天室(Java源码).zip 基于java的开发源码-P2P--多用户在线聊天室(Java源码).zip 基于java的开发源码-P2P--多...
标题"“P2P--多用户在线聊天室(Java源码)”"揭示了我们讨论的主题是一个基于P2P技术构建的、支持多用户同时在线交流的聊天室系统,其核心实现是用Java编程语言编写的。这里的"P2P"指的是对等网络,它是一种分布式...
总结来说,C#编写P2P聊天程序涉及了网络编程、多线程、数据序列化、安全加密、用户界面设计等多个方面的知识。通过深入学习和实践,开发者不仅可以掌握P2P通信的基本原理,还能提升在C#编程环境下的综合开发能力。...
P2P点对点聊天系统是P2P技术在即时通讯应用中的典型实例,它摒弃了传统客户端-服务器模式,使每个用户节点都可以既是服务提供者也是服务消费者,实现了高效、灵活的通信方式。本篇文章将深入探讨基于C#开发的P2P点对...
【标题】"基于P2P UDP的局域网聊天工具源码" 描述了一款使用P2P(点对点)技术并通过UDP(用户数据报协议)进行通信的局域网聊天工具。这款源码提供了深入理解P2P网络和UDP通信在实际应用中的机会,适合开发者学习和...
在本文中,我们将深入探讨如何使用C#编程语言来创建一个P2P(点对点)视频聊天程序。P2P技术允许用户直接通过互联网互相通信,而无需经过中心服务器,这大大降低了带宽需求和延迟,提高了通信效率。下面我们将详细...
该资源是一个基于Java编程语言开发的P2P(Peer-to-Peer)多用户在线聊天室的实例源码。P2P技术在通信领域中广泛应用,它允许网络中的每个节点既是客户端也是服务器,使得数据传输更加分散和高效。在这个项目中,...
这个基于Java的实例源码是一个P2P(对等网络)多用户在线聊天室的实现,它展示了如何在Java环境中构建一个实时通信的应用程序。在本文中,我们将深入探讨这个项目涉及的关键技术、设计模式以及Java编程的核心概念。 ...
标题和描述中提到的"P2P-多用户在线聊天室(Java源码)"是一个基于P2P(Peer-to-Peer)技术实现的多人在线聊天系统,其核心是使用Java编程语言编写的源代码。P2P网络是一种分布式网络架构,其中每个参与者既是客户端...
P2P--多用户在线聊天室(Java源码).rar
JAVA源码P2P-多用户在线聊天室(Java源码)
"精选_基于Qt实现的P2P聊天程序_源码打包" 这个标题揭示了我们讨论的核心内容,即一个使用Qt框架开发的点对点(P2P)聊天应用程序。"精选"表明这是一份高质量或具有代表性的代码库,而"源码打包"意味着我们可以获得...
【P2P聊天程序(JAVA)】是一种网络通信应用程序,它使用对等网络(P2P,Peer-to-Peer)架构来实现用户之间的实时交流。P2P技术允许网络中的每个节点既是客户端也是服务器,因此在聊天程序中,每个用户都可以发送和...
P2P(Peer-to-Peer)聊天源码是一种实现用户间直接通信的技术,它与传统的客户端-服务器(C/S)架构不同,P2P网络中的每个节点既是服务提供者也是服务消费者。在IM(Instant Messaging)即时通讯系统中,P2P技术被...
这个基于Java的源码项目是一个P2P(Peer-to-Peer)多用户在线聊天室,它允许多个用户通过网络进行实时通信。在Java编程领域,这样的应用通常涉及到网络编程、多线程、对象序列化以及可能的GUI设计等多个重要知识点。...
C# P2P(peer-to-peer)源码是用于构建聊天程序的一种编程资源,它允许开发者创建无需中心服务器,可以直接在参与者之间交换信息的应用。P2P架构在互联网上广泛应用,因为它可以有效地分发流量,降低单一服务器的...
这是一款基于WinForm技术的p2p语言聊天系统,使用udp传送语音和文本等信息。在这个系统中没有服务端和客户端,相互通讯都是直接相互联系的。能够很好的实现效果。 二、菜单功能 该源码是一种人与人进行交流的工具...
标题中的"P2P--多用户在线聊天室(Java源码)"揭示了这是一个基于P2P(Peer-to-Peer)技术实现的多人在线聊天应用程序,使用Java编程语言编写。P2P技术是一种分布式网络架构,其中每个参与者既是服务的提供者也是...
标题中的"P2P-多用户在线聊天室(Java源码)"表明这是一个基于P2P技术的、允许多个用户实时交流的在线聊天室系统,其核心编程语言是Java。P2P,即对等网络,是一种分布式网络架构,其中每个参与者既是服务的消费者也...