毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

C#+Socket即时通信程序设计(7)

时间:2017-06-06 16:17来源:毕业论文
Socket用于C/S结构中时的流程如下 (1) 客户端流程如下:  创建套接字(socket);  向服务器发出连接请求(connect);  和服务器端进行通信(send


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信道使用二进制格式化程序将所有的消息序列转化为二进制流,比如 C#+Socket即时通信程序设计(7):http://www.youerw.com/jisuanji/lunwen_8502.html
------分隔线----------------------------
推荐内容