论坛首页 Java企业应用论坛

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

浏览 1963 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-15   最后修改:2010-03-15

本例开发实现了一个多用户的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

 

   发表时间:2010-03-16  
多用户的P2P在线聊天程序,终于完成

多用户的P2P在线聊天程序,完全源码 连载一 监听新用户加入

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

多用户的P2P在线聊天程序,完全源码 连载三 编写监听用户信息类

多用户的P2P在线聊天程序,完全源码 连载四 编写客户端Applet类

多用户的P2P在线聊天程序,完全源码 连载五 编写客户端用户监听线程

多用户的P2P在线聊天程序,完全源码 连载六 通信流程(实例P2P原理分析图)和运行结果
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics