WEB开发网
开发学院软件开发C语言 C#网络编程(订立协议和发送文件) - Part.4 阅读

C#网络编程(订立协议和发送文件) - Part.4

 2009-03-26 08:22:21 来源:WEB开发网   
核心提示: 1.订立协议1.1发送文件我们先看一下发送文件的情况,如果我们想将文件client01.jpg由客户端发往客户端,C#网络编程(订立协议和发送文件) - Part.4(2),那么流程是什么:客户端开辟数据端口用于侦听,并获取端口号,假设为8006,假设客户端输入了R1,假设为8005,假设

1.订立协议

1.1发送文件

我们先看一下发送文件的情况,如果我们想将文件client01.jpg由客户端发往客户端,那么流程是什么:

客户端开辟数据端口用于侦听,并获取端口号,假设为8005。

假设客户端输入了S1,则发送下面的控制字符串到服务端:[file=Client01.jpg, mode=send, port=8005]。

服务端收到以后,根据客户端ip和端口号与该客户端建立连接。

客户端侦听到服务端的连接,开始发送文件。

传送完毕后客户端、服务端分别关闭连接。

此时,我们订立的发送文件协议为:[file=Client01.jpg, mode=send, port=8005]。但是,由于它是一个普通的字符串,在上一篇中,我们采用了正则表达式来获取其中的有效值,但这显然不是一种好办法。因此,在本文及下一篇文章中,我们采用一种新的方式来编写协议:XML。对于上面的语句,我们可以写成这样的XML:

<protocol><file name="client01.jpg" mode="send" port="8005" /></protocol>

这样我们在服务端就会好处理得多,接下来我们来看一下接收文件的流程及其协议。

NOTE:这里说发送、接收文件是站在客户端的立场说的,当客户端发送文件时,对于服务器来收,则是接收文件。

1.2接收文件

接收文件与发送文件实际上完全类似,区别只是由客户端向网络流写入数据,还是由服务端向网络流写入数据。

客户端开辟数据端口用于侦听,假设为8006。

假设客户端输入了R1,则发送控制字符串:<protocol><file name="Server01.jpg" mode="receive" port="8006" /></protocol>到服务端。

上一页  1 2 3 4 5 6 7  下一页

Tags:网络编程 订立 协议

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