欢迎来到天天文库
浏览记录
ID:15674619
大小:104.50 KB
页数:11页
时间:2018-08-04
《java socket编程 - 基于tcp方式的客户服务器聊天程序(可编辑)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JavaSocket编程-基于TCP方式的客户服务器聊天程序流流浪浪的的鱼鱼始始怜怜幽幽竹竹山山窗窗下下,,不不改改清清阴阴待待我我归归JJaavvaaSSoocckkeett编编程程基基于于TTCCPP方方式式的的客客户户服服务务器器聊聊天天程程序序分类:JavaScoket编程7>2012111801:14466人阅读评论5收藏举报本文讲演示如何通过JavaSocket建立C/S方式的聊天程序。实现的功能主要包括如下几个方面:1.用户登录,在线用户列表刷新2.客户端与服务器的TCP连接,实现消息的发送与接受3.JavaSwing与多线程
2、编程技巧一个整体的Class关系图如下:程序实现的服务器端UI如下:1一个JList组件用来显示在线的所有用户,一个JTextArea组件用来显示所有消息记录。所有消息必须通过服务器端转发。点击【start】按钮启动服务器端监听默认监听端口为9999。启启动动服服务务器器端端的的AAccttiioonn中中的的代代码码如如下下::ThreadstartThreadnewThreadnewRunnablepublicvoidrunstartServer9999;;startThread.start;startBtn.setEnabledals
3、e;shutDownBtn.setEnabledtrue;ssttaarrttSSeerrvveerr(())的的代代码码如如下下::privatevoidstartServerintporttryserverSocketnewServerSocketport;Sytln"Serverstartedatport:"+port;whiletrueSocketclientserverSocket.accept;//blocked&waitingoriSytln"Justconnectedto"+client.getRemoteSocketADa
4、taInputStreambueredReadernewDataInputStreamclient.getInbyte[]cbunewbyte[256];intsizebueredReader.readcbu;char[]charBuconvertByteToCharcbu,size;2StringuserNameString.valueOcharBu;ChatServerClientThreadclentThreadnewChatServerClientThreaduclientList.addclentThread;userNameLi
5、st.adduserName;clentThread.start;updateUserList;catchIOExceptionee.printStackTrace;简单协议规则:1.任何消息发送完以后系统自动加上结束标志EOF2.接受到用户消息以后通过解析EOF来完成消息传递3.自动发送更新用户列表到所有客户端当有新客户登入时为什么我要实现上述简单协议,其实任何网络通信都是基于协议实现只有基于协议实现才可控制,可检查。协议是网络通信的最重要一环。客户端UI设计如下:一个自定义的JPanel实现背景渐进颜色填充。3Message组件用来接受
6、用户输入的聊天信息FriendList会自动刷新用户列表,当有新用户登录时候HistoryRecord用来显示聊天记录【Connect】点击连接到Server端,前提是必须填写设置中全部,默认?的机器IP.1端口为9999【send】按钮点击会发送用户输入的消息到指定的其它客户端。如果?没有选择用户,则发送到服务器端。?一次发送消息的大小不得大于200个字节。完整的客户端代码如下:packagecom.gloomyrial.chat;importerLayout;importLayout;importLayout;importt.Actio
7、nEvent;importt.ActionListener;importception;importSocketAddress;importet;importetAddress;importjerFactory;importjton;importjckBox;importjme;importjel;importjt;importjionPane;importjel;importjswordField;importjollPane;importjtArea;importjtField;importcom.gloomyedGradientPan
8、el;publicclassChatClientextendsJFrameimplementsActionListenerpublicinalstaticStringCONNEC
此文档下载收益归作者所有