WEB开发网
开发学院软件开发C语言 C#网络编程(基本概念和操作) - Part.1 阅读

C#网络编程(基本概念和操作) - Part.1

 2009-03-26 08:20:08 来源:WEB开发网   
核心提示: 第二种方式较好的解决了上面的问题,它引入了服务器,C#网络编程(基本概念和操作) - Part.1(5),由这个服务器来专门进行广播,服务器持续保持对端口的侦听状态,则服务器可以对消息进行缓存,当主机B下次连接到服务器时,每当有主机上线时,首先连接至服务器

第二种方式较好的解决了上面的问题,它引入了服务器,由这个服务器来专门进行广播。服务器持续保持对端口的侦听状态,每当有主机上线时,首先连接至服务器,服务器收到连接后,将该主机的位置(地址和端口号)发往其他在线主机(绿色箭头标识)。这样其他主机便知道该主机已上线,并知道其所在位置,从而可以进行连接和对话。在服务器进行了广播之后,因为各个主机已经知道了其他主机的位置,因此主机之间的对话就不再通过服务器(黑色箭头表示),而是直接进行连接。因此,使用这种模式时,各个主机依然需要保持对端口的侦听。在某台主机离线时,与登录时的模式类似,服务器会收到通知,然后转告给其他的主机。

C#网络编程(基本概念和操作) - Part.1

第三种模式是我觉得最简单也最实用的一种,主机的登录与离线与第二种模式相同。注意到每台主机在上线时首先就与服务器建立了连接,那么从主机A发往主机B发送消息,就可以通过这样一条路径,主机A --> 服务器 --> 主机B,通过这种方式,各个主机不需要在对端口进行侦听,而只需要服务器进行侦听就可以了,大大地简化了开发。

而对于一些较大的文件,比如说图片或者文件,如果想由主机A发往主机B,如果通过服务器进行传输效率会比较低,此时可以临时搭建一个主机A至主机B之间的连接,用于传输大文件。当文件传输结束之后再关闭连接(桔红色箭头标识)。

除此以外,由于消息都经过服务器,所以服务器还可以缓存主机间的对话,即是说当主机A发往主机B时,如果主机B已经离线,则服务器可以对消息进行缓存,当主机B下次连接到服务器时,服务器自动将缓存的消息发给主机B。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:网络编程 基本 概念

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接