Socket实现手机聊天室
来源:互联网 发布:java 时间戳转成date 编辑:程序博客网 时间:2024/05/16 07:25
趁着放假的这几天,根据之前学的Java me方面的知识,做了一个基于Socket的手机聊天小软件。主要是通过一台Internate上的服务器转发聊天信息。 一、服务器。思路:在服务器端,构造一个Server类的实例,Server类的实例的职责:打开Socket端口等待用户连接、保存用户连接信息。除了重要的Server类,还建立了存储用户连接信息(用户ID,Socket实例)的Custem类,以及在服务器和终端用户之间的信息Message类。接下来就逐个的具体介绍。(1) Server类。它的职责是打开本地的端口,并且通过一个内置的线程类监听连接请求,为每个连接到服务器的终端自动分配一个ID,将用户的连接及ID封装到Custem实例中,并且通过Hashtable记录下每个终端连接。 下面是Server类的结构: 下面是Server类的代码:(2) Custem类。用于构造用户类,每个连接服务器的用户都拥有一个Custem类的实例线程与之对应,每个用户都有用户ID属性。服务器可通过Custem实例与用户通信,Custem通过信息的分析可准确的将信息向相应的终端用户发送。下面是Custem类的结构: 下面是Custem类的代码:(3) Message类。由于使用Socket,不能直接传送自定义的类,但是如果单纯使用String,则难以实现传送完整信息的功能。于是自定义了一个Message类,它可以将发送方,接收方的ID以及待发的信息封装到Message实例中,并且通过toString()方法转换成“发送方ID&接受方ID&聊天信息”格式的String,还可以通过fromString()方法从格式后的String分别读出信息元素。这样就能够方便的实现信息交流。下面是Message类的结构:下面是Message类的代码: 服务器端已经介绍完毕,接下来是手机客户端了。二、客户端 思路:在终端手机上使用java me通过Socket连接服务器端。处理待发信息并发送给服务器,并通过内置线程类监听Socket以读取信息。整个客户端包含两个java文件,分别是主程序文件SocketClient.java、与服务器端相对应的Message.java。 (1) SocketClient类。继承了MIDplet类,构造了手机应用程序。主要职责是连接服务器端,并处理聊天信息。下面是SocketClient类的结构: 下面是SocketClient类的代码:(2) Message类。与服务器端的Message类相同,这里就不介绍了。 三、测试环境。服务器端的IP地址是192.168.11.3,Socket端口是9999。手机终端使用Sun WTk 2.5.2模拟。 四、测试结果。成功实现预期功能。实验截图如下: 总结:至此已介绍完毕。发现Socket传输信息是很麻烦的,如果使用较高层的传输技术如Webservice等可简化实现。这个留到以后再探讨了。
- Socket实现手机聊天室
- web socket实现聊天室
- Socket实现简单聊天室
- Socket实现聊天室
- XMPP - Socket 实现创建聊天室
- Socket编程实现简易聊天室
- java Socket实现简单聊天室
- socket.io 实现在线聊天室
- 简单聊天室socket.io实现
- 基于socket的聊天室实现原理
- 基于Socket的聊天室实现原理
- 基于Socket的聊天室实现原理
- 基于Socket的聊天室实现原理
- 基于Socket的聊天室实现原理
- 基于Socket的聊天室实现原理
- 基于Socket的聊天室实现原理
- 基于Socket的聊天室实现原理
- 基于Socket的聊天室实现原理
- DB2 HOW TOs
- javascript 取得两个时间的天数差 (两个方法)
- 至爱!
- 至爱!
- 至爱!
- Socket实现手机聊天室
- 欢迎加入QQ群(63503492)讨论技术
- 欢迎加入QQ群(63503492)讨论技术
- 疼自己的女朋友要做到24条
- 光標進入離開事件 delphi
- 光標進入離開事件 delphi
- 不要让社区污染了互联网!
- 男人永遠不敢講的後半句
- Eclipse+JDK+API中文帮助文档的java开发环境搭建