16:59 2011/11/20
现在开始写开发过程的记录:
聊天程序采用的技术,使用TCP协议传输,也就是套接字Socket编程,多线程处理,图形界面执行,事件处理机制
本次的聊天程序分为三个版本
chat0.1 此版本实现了单个客户端对服务器端消息的传输,用户界面基本实现,但是无法实现多个客户端的同时连接。
chat0.2 此版本实现了多个客户端对服务器端消息的传输,服务器端采用多线程处理,设立无限循环的等待(也就是在建立阻塞式的端口监听),一旦有客户端请求链接,即实现监听,那么向下执行,向下之后建立新线程用来处理跟客户端的消息接收,即针对每个客户端都在服务器端建立一个对之对应的线程。但是现在无法实现对每个消息传回,通俗的说,也就是无法实现服务器到每个客户端的消息群发。
chat0.3 此版本在上一个版本的基础上,实现了服务器端到所有客户端的消息群发,主要思想是,在每次建立链接的时候都将该连接的输出通道,也就是网络流传递存储到实现定义的一个对象数组里面(注意对象数组的定义),然后在每个线程中都要求实现一个方法,也就是在每个等待消息的后面,加一个方法,此方法会一次遍历对象数组,然后得到流通道,将消息发出。
总结:本次写程序,严格的说历时两天,在这两天中遇到很多困难,基本上最大困难就是在每个版本衔接之处的未能实现的功能,到最后写出来的时候发现,其实远远没有想象中的那么难,做不到之前,就很难,做到之后,会发现,不过如此,只要愿意,依然可以很轻易的搞定
17:35 2011/11/20
下一步计划:
在本次中使用了TCP协议的方式,但是在实际中的聊天,这种方式并不实际,尽管这种方式很可靠,不会出现数据丢失的问题,但是效率过低,接下来会使用另一种方式,UDP数据报的方式,这种方式是指不用建立链接,直接将愿意发送的数据打包往目的地发送就好,期间不考虑数据包的安全性问题,但是这样更符合聊天程序的惯例
目的:做一个基于UDP传输的聊天程序(功能跟上次那个一样就好)
评论0
最新资源