用Visual C#实现P2P应用程序(2)
2.Sender类:
Sender类就一个函数,所以是相当简单的。
代码以及注释如下:
对Send()函数的补充说明:
Send(string[] aInput)函数将一个数组作为参数。数组的第一个元素Send(aInput[0])必须包含"send"这个字,否则Sender对象不会被创建(更多内容在InputHandler类中);第二个元素包含了目标计算机的IP地址;剩下的就是要发送的内容信息了。
在try块中,我们根据远程计算机的IP地址在端口5656(要确保端口号统一)创建了一个TcpClient对象。然后,我们建立一个NetworkStream和一个StremWriter对象来发送我们的信息。在catch块中,我们用它来捕获一般的例外,比如远程计算机拒绝连接请求、网络不通什么的。
Sender类就一个函数,所以是相当简单的。
代码以及注释如下:
namespace P2PTest |
对Send()函数的补充说明:
Send(string[] aInput)函数将一个数组作为参数。数组的第一个元素Send(aInput[0])必须包含"send"这个字,否则Sender对象不会被创建(更多内容在InputHandler类中);第二个元素包含了目标计算机的IP地址;剩下的就是要发送的内容信息了。
在try块中,我们根据远程计算机的IP地址在端口5656(要确保端口号统一)创建了一个TcpClient对象。然后,我们建立一个NetworkStream和一个StremWriter对象来发送我们的信息。在catch块中,我们用它来捕获一般的例外,比如远程计算机拒绝连接请求、网络不通什么的。
3.InputHandler类:
InputHandler类主要用来控制用户输入。
代码以及注释如下:
|
对InputHandler类的补充说明:
该类中有一个静态的Listener对象li,一旦计算机运行此程序并执行"start"操作,该计算机就可以成为网络中的服务器来监听其他计算机的连接请求。而该类的核心部分是一个switch case语句系列,通过不同的操作,我们可以使计算机扮演不同的角色:"send"操作表明该计算机相对目的计算机而言成了客户端;而"start"操作就将计算机自身置为服务器端,这正体现了P2P的既是服务器端又是客户端的"非中心化"的原则;同时程序也提供了一些其他的辅助操作。
浙公网安备 33010602011771号