4.Initialize类:
Initialize类进行程序的初始化工作,它新建了一个InputHandler对象,只要该对象的布尔值appRun为true,就一直运行之,直到该值为false,程序退出。
代码以及注释如下:
namespace P2PTest { using System;
public class Init { public static void Main() { InputHandler ih = new InputHandler();//新建一个InputHandler对象 while(ih.appRun);//直到ih.appRun为false,程序退出 Console.WriteLine("exiting.."); } } } |
到此为止,四个类已经介绍完毕,我想大家也早已等不及了吧,下面就简单给大家介绍一下具体实现程序的方法。
三.实现方法:
首先,打开Visual Studio.Net,新建一个名为P2Ptest的控制台应用程序的Visual C#项目,图示如下:
图1
其次,将以上四个类分别保存为四个文件:listener.cs,sender.cs,inputHandler.cs,initialize.cs。然后将这四个文件添加到当前的工程中,同时把原有的主文件删除即可(因为在initialize.cs中已经有主函数了)。
最后,按Ctrl+F5即可执行程序了。
为了进行测试,我们需要打开两个P2Ptest程序,一个作为服务器端,另一个作为客户端。服务器端的图示如下(此时已经开始监听了):
图2
客户端的图示如下(输入命令行:send 10.85.7.79 Hello,I'm Pitt.Can you hear me??):
图3
再看服务器端的情况,图示如下:
图4
从图示可以看到服务器端已经收到消息了。同时,只要客户端也开启了监听功能,服务器端也就能向客户端发送信息了。这样它们的关系就不再是服务器-客户机的关系了,而是Peer-to-Peer的关系了。
四.总结: 现在一个很基本的P2P应用程序以及完成,通过它,我们可以利用P2P技术的基本特性实现点对点通信。通过这个程序,我相信大家对C#下的P2P编程应该有了大致的了解。对于这个程序,不足的一点是功能比较简单,只可以发送、接受信息,而且还是基于控制台的,读者可以试着开发出功能更强大的基于Windows Forms的P2P应用程序。
最后,笔者希望能通过此文唤起大家对P2P技术的兴趣。因为P2P身后所蕴藏着的无比的创造力使人们对未来互联网充满了美好的憧憬,现在世界范围的P2P应用热潮也是一浪高过一浪。在可以预见的未来,随着对P2P研究的进一步深入和关注P2P的群体逐渐增多,P2P必将进入一个飞速发展的新时期。
查看本文来源