Socket用于C/S结构中时的流程如下
(1) 客户端流程如下:
创建套接字(socket);
向服务器发出连接请求(connect);
和服务器端进行通信(send/recv);
关闭套接字。
(2) 服务器端的流程如下:
创建套接字(socket);
将套接字绑定到一个本地地址和端口上(bind);
将套接字设为监听模式,准备接收客户端请求(listen);
等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept);
用返回的套接字和客户端进行通信(send/recv);
返回,等待另一个客户请求;
关闭套接字。
套接字的结构如图2.3所示:2.7 本章小结
本章主要对本系统的相关技术进行介绍,对基于C/S即时通讯的原理有一定的了解,对数据信息在网络中传输的原理都有进一步的认识,从需求分析和可行性分析出发讲述系统的系统设计架构、系统的各个基本流程图、需求分析、技术可行性分析以及对系统的开发环境和相关技术进行了详细的介绍。为设计本系统构建了一定的理论基础。
3 设计
3.1 服务器端监听设计
服务器端的设计是一个难点,同样也是重点,服务器端通信程序负责接收和监听客户端的请求,根据客户端的要求把这写请求转换为信息转发给另外一个或多个客户端。客户端负责建立并文护与服务器的连接,想服务器发送本客户端的请求,同时从服务器端接收其他客户端的响应。
本程序中要先启动服务器端,服务器就需要制定一个端口号,客户端根据这个端口号以及服务器的IP地址来实现相互通信,这个端口号相当于一个“聊天频道”。
服务器开始监听后,使用Accept 方法则会处理任何输入的连接请求并且返回一个可以用来与远程主机进行数据通信的 Socket。然后使用这个被返回的 Socket 来调用 Send 方法或者 Receive 方法。服务器将在制定的端口中等待客户端的连接,轮询监听客户端的请求并将客户端套接字转存入转发表。服务器有一个接收数据的缓冲区,会暂时保存客户端的请求,服务器对客户的数量不做限制,并提供公共聊天和私人聊天服务。
3.1.1 设计思想和功能
服务器要能完成三件事:
服务器要在特定的端口上等待来自聊天客户端的连接请求,并且需要文护客户连接表,记录所有的成功连接。
服务器要及时响应客户端的请求,接收各个客户发来的信息,然后把这些信息转发给一个或者多个已连接客户。对于公共聊天,服务器要吧接收到的信息转发给除源端外的所有客户端。
服务器监听客户端的连接状态,在客户端主动离开或异常断开时从连接表中删除相应的表项,更新连接表。
这些功能可以通过Socket类提供的功能来实现。client socket通过转发表来得到用户套接字,服务器通过监听此套接字来获得客户端的请求,套接字的数量不可预测,所以需要建立一个连接表来记录客户端数量。Socket可以像流Stream一样被视为一个数据通道,这个通道架设在客户端和服务器端之间,而后,数据的读取(接收)和写入(发送)均通过这个通道来进行。
TcpListener这个功能实现了服务器运用TCP协议来进行客户端之间的通信,TCP信道使用二进制格式化程序将所有的消息序列转化为二进制流,比如
- 上一篇:php+mysql校园论坛的设计与开发
- 下一篇:php增值业务运营系统中业务流量分析的研究与开发
-
-
-
-
-
-
-
河岸冲刷和泥沙淤积的监测国内外研究现状
杂拟谷盗体内共生菌沃尔...
大众媒体对公共政策制定的影响
乳业同业并购式全产业链...
中考体育项目与体育教学合理结合的研究
酸性水汽提装置总汽提塔设计+CAD图纸
java+mysql车辆管理系统的设计+源代码
十二层带中心支撑钢结构...
当代大学生慈善意识研究+文献综述
电站锅炉暖风器设计任务书