`

多用户的P2P在线聊天程序,完全源码 连载二 编写用户实例类

阅读更多

本例开发实现了一个多用户的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多用户在线聊天室项目源码涵盖了许多高级Java技术,包括P2P网络编程、数据库操作、GUI设计、实时通信、安全性和文件共享。对于想深入学习Java网络编程和分布式系统的人来说,这是一个非常有...

    基于java的开发源码-P2P-多用户在线聊天室(Java源码).zip

    基于java的开发源码-P2P--多用户在线聊天室(Java源码).zip 基于java的开发源码-P2P--多用户在线聊天室(Java源码).zip 基于java的开发源码-P2P--多用户在线聊天室(Java源码).zip 基于java的开发源码-P2P--多...

    P2P--多用户在线聊天室(Java源码)

    标题"“P2P--多用户在线聊天室(Java源码)”"揭示了我们讨论的主题是一个基于P2P技术构建的、支持多用户同时在线交流的聊天室系统,其核心实现是用Java编程语言编写的。这里的"P2P"指的是对等网络,它是一种分布式...

    c#编写的P2P聊天程序

    总结来说,C#编写P2P聊天程序涉及了网络编程、多线程、数据序列化、安全加密、用户界面设计等多个方面的知识。通过深入学习和实践,开发者不仅可以掌握P2P通信的基本原理,还能提升在C#编程环境下的综合开发能力。...

    P2P点对点聊天 源码

    P2P点对点聊天系统是P2P技术在即时通讯应用中的典型实例,它摒弃了传统客户端-服务器模式,使每个用户节点都可以既是服务提供者也是服务消费者,实现了高效、灵活的通信方式。本篇文章将深入探讨基于C#开发的P2P点对...

    基于P2P UDP的局域网聊天工具源码

    【标题】"基于P2P UDP的局域网聊天工具源码" 描述了一款使用P2P(点对点)技术并通过UDP(用户数据报协议)进行通信的局域网聊天工具。这款源码提供了深入理解P2P网络和UDP通信在实际应用中的机会,适合开发者学习和...

    C#编写P2P视频聊天程序

    在本文中,我们将深入探讨如何使用C#编程语言来创建一个P2P(点对点)视频聊天程序。P2P技术允许用户直接通过互联网互相通信,而无需经过中心服务器,这大大降低了带宽需求和延迟,提高了通信效率。下面我们将详细...

    基于Java的实例开发源码-P2P-多用户在线聊天室(Java源码).zip

    该资源是一个基于Java编程语言开发的P2P(Peer-to-Peer)多用户在线聊天室的实例源码。P2P技术在通信领域中广泛应用,它允许网络中的每个节点既是客户端也是服务器,使得数据传输更加分散和高效。在这个项目中,...

    基于Java的实例源码-P2P-多用户在线聊天室(Java源码).zip

    这个基于Java的实例源码是一个P2P(对等网络)多用户在线聊天室的实现,它展示了如何在Java环境中构建一个实时通信的应用程序。在本文中,我们将深入探讨这个项目涉及的关键技术、设计模式以及Java编程的核心概念。 ...

    P2P-多用户在线聊天室(Java源码).zip

    标题和描述中提到的"P2P-多用户在线聊天室(Java源码)"是一个基于P2P(Peer-to-Peer)技术实现的多人在线聊天系统,其核心是使用Java编程语言编写的源代码。P2P网络是一种分布式网络架构,其中每个参与者既是客户端...

    P2P--多用户在线聊天室(Java源码).rar

    P2P--多用户在线聊天室(Java源码).rar

    JAVA源码P2P-多用户在线聊天室(Java源码)

    JAVA源码P2P-多用户在线聊天室(Java源码)

    精选_基于Qt实现的P2P聊天程序_源码打包

    "精选_基于Qt实现的P2P聊天程序_源码打包" 这个标题揭示了我们讨论的核心内容,即一个使用Qt框架开发的点对点(P2P)聊天应用程序。"精选"表明这是一份高质量或具有代表性的代码库,而"源码打包"意味着我们可以获得...

    P2P聊天程序(JAVA)

    【P2P聊天程序(JAVA)】是一种网络通信应用程序,它使用对等网络(P2P,Peer-to-Peer)架构来实现用户之间的实时交流。P2P技术允许网络中的每个节点既是客户端也是服务器,因此在聊天程序中,每个用户都可以发送和...

    P2P聊天源码 IM

    P2P(Peer-to-Peer)聊天源码是一种实现用户间直接通信的技术,它与传统的客户端-服务器(C/S)架构不同,P2P网络中的每个节点既是服务提供者也是服务消费者。在IM(Instant Messaging)即时通讯系统中,P2P技术被...

    基于Java的源码-P2P-多用户在线聊天室(Java源码).zip

    这个基于Java的源码项目是一个P2P(Peer-to-Peer)多用户在线聊天室,它允许多个用户通过网络进行实时通信。在Java编程领域,这样的应用通常涉及到网络编程、多线程、对象序列化以及可能的GUI设计等多个重要知识点。...

    C#p2p源码,聊天程序百分百可用的源码

    C# P2P(peer-to-peer)源码是用于构建聊天程序的一种编程资源,它允许开发者创建无需中心服务器,可以直接在参与者之间交换信息的应用。P2P架构在互联网上广泛应用,因为它可以有效地分发流量,降低单一服务器的...

    WINFORM P2P语言聊天系统源码

    这是一款基于WinForm技术的p2p语言聊天系统,使用udp传送语音和文本等信息。在这个系统中没有服务端和客户端,相互通讯都是直接相互联系的。能够很好的实现效果。 二、菜单功能 该源码是一种人与人进行交流的工具...

    P2P--多用户在线聊天室(Java源码).7z

    标题中的"P2P--多用户在线聊天室(Java源码)"揭示了这是一个基于P2P(Peer-to-Peer)技术实现的多人在线聊天应用程序,使用Java编程语言编写。P2P技术是一种分布式网络架构,其中每个参与者既是服务的提供者也是...

    P2P-多用户在线聊天室(Java源码).rar

    标题中的"P2P-多用户在线聊天室(Java源码)"表明这是一个基于P2P技术的、允许多个用户实时交流的在线聊天室系统,其核心编程语言是Java。P2P,即对等网络,是一种分布式网络架构,其中每个参与者既是服务的消费者也...

Global site tag (gtag.js) - Google Analytics