java tcp socket聊天系统模型

java tcp socket聊天系统模型

ID:796044

大小:210.53 KB

页数:24页

时间:2017-09-05

java tcp socket聊天系统模型_第1页
java tcp socket聊天系统模型_第2页
java tcp socket聊天系统模型_第3页
java tcp socket聊天系统模型_第4页
java tcp socket聊天系统模型_第5页
资源描述:

《java tcp socket聊天系统模型》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、TcpSocekt通信模型TcpSocket是面向连接的,所以Server端的accept()方法,一直等着客户端的连接,如果连接成功,则两者进行通信,这种是同步的,因为accept()一直在那儿等着,时刻的等着,实际中的聊天系统是采用异步方式,当有请求的时候就调用accept()方法,没有请求的时候该做什么就做什么去,不需要在那儿等着,不浪费资源,一种异步的方式。这个例子只是为了学习线程而准备的。端口有TCP端口和UDP端口两种,端口号都是从0到65535,TCP端口在3层,UDP不是四层就是7层TCP和U

2、DP的协议也不相同,TCP比UDP安全,更多TCP和UDP区别上google,baidu。服务器端编码Java代码1.import java.io.BufferedReader;  2.import java.io.IOException;  3.import java.io.InputStreamReader;  4.import java.io.PrintStream;  5.import java.net.ServerSocket;  6.import java.net.Socket;  7.impor

3、t java.util.StringTokenizer;  8.import java.util.Vector;  9.  10./** 11. * 服务器端编码 12. * @author 欧阳平 2009-3-17  13. */  14.public class ChatServer {  15.    static int port = 5566;//端口号  16.    static Vector clients = new Vector(10);//存储连接客户信

4、息  17.    static ServerSocket server = null; //建立服务器socket  18.    static Socket socket = null; //套接字连接  19.    /** 20.     * Constructs 21.     */  22.    public ChatServer() {  23.        try {  1.            System.out.println("Server start...");  2.    

5、        server  = new ServerSocket(port); //初始化服务器套接字  3.            while (true) {  4.                socket = server.accept(); //等待连接  5.                System.out.println(socket.getInetAddress()+"连接");//得到客户机地址  6.                Client client = new Cl

6、ient(socket); //实例化一个客户线程(其中线程Client中有Socket,这里的的Socket只是起个过度作用)  7.                //  8.                clients.add(client);//增加客户线程到向量中  9.                client.start();//启动线程  10.                notifyChatRoom(); //监视聊天室连接变化  11.            }  12.     

7、   } catch (Exception ex) {  13.            ex.printStackTrace();//输出出错信息  14.        }  15.    }  16.      17.    public static void notifyChatRoom() { //监视客户端线程  18.        StringBuffer newUser = new StringBuffer("newUser");  19.        for (int i = 0; i 

8、< clients.size(); i++) {  20.            Client c = (Client)clients.elementAt(i);  21.            newUser.append(":"+c.name); //客户端姓名字符串  22.        }  23.        sendClients(newUser);//发送信息到客户端  24.  

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。