回 帖 发 新 帖 刷新版面

主题:[转帖]C#下用P2P技术实现点对点聊天

P2P技术简介

  P2P,英文Peer-to-Peer的缩写,中译为对等互联或点对点技术。P2P技术可以让用户可以直接连接到其他用户的计算机,进行文件共享与交换,同时P2P在深度搜索、分布计算、协同工作等方面也大有用途。

  简单地说,P2P就是一种用于不同PC用户之间,不经过中继设备直接交换数据或服务的技术,它允许Internet用户直接使用对方的文件。每个人可以直接连接到其他用户的计算机,并进行文件的交换,而不需要连接到服务器上再进行浏览与下载。

  目前Internet的存储模式是"内容位于中心",而P2P技术的运用将使Internet上的内容向边缘移动。这将带来以下改变:

  首先,客户不再需要将文件上传到服务器,而只需要使用P2P与其他计算机进行共享;

  其次,使用P2P技术的计算机不需要固定的IP地址和永久的Internet连接,这使得占有极大比例的拨号上网用户也可以享受P2P带来的变革。

 实例介绍

  理解P2P技术的最好方法莫过于仔细观察并理解一个实际的P2P应用程序。C#作为微软.Net战略的重要棋子,对网络编程提供了很好的支持和优化。本文就通过一个程序,向大家介绍一下C#下的P2P编程的方法和实现机理。本文的这个程序不是很有用,但却很直观地给出了P2P(点对点)编程以及套接口编程的一些基本知识和概念。它是建立在TcpListener以及TcpClient这两个类基础上的。程序实现的原理也比较简单,但是用到了P2P技术重返"非中心化"的基本原则。简言之,用这个程序可以在网络中发送、接受消息,任何一台计算机既可以作为服务器端,又可以作为客户端。

  系统要求:

  1.Widows 2000服务器版操作系统或后续版本的操作系统。

  2.Visual Studio.net Framework正式版。

  具体方法:

  首先,打开VS.net,新建一个C#项目(注意:模板为Windows应用程序),不妨命名为"P2Pchat"。图示如下:



  其次,参照ICQ、OICQ等聊天工具,我们可以将程序的主界面布置成和常见聊天工具的消息发送对话框类似的布局。不过由于程序仅一个主界面,所以还要添加一些诸如"开始监听"、"停止监听"等控制按钮。同时,程序是支持昵称显示的。于是,按照这个思想,我们可以开始布置程序的主界面了。首先,往主界面上拖放如下一些控件:两个Label控件、三个Button控件、三个TextBox控件、一个RichTextBox控件以及一个StatusBar控件。


 各个控件的属性设置如下表所示:

Form1 Text属性 P2P聊天工具
Label1 Text属性 目标计算机地址:
TestSlign属性 MiddleCenter
Label2 Text属性 昵称:
TextAlign属性 MiddleCenter
Button1 Text属性 开始监听
FlatStyle属性 Flat
Button2 Text属性 停止监听
FlatStyle属性 Flat
Enabled属性 False
Anchor属性 Top, Right
Button3 Text属性 发送消息
FlatStyle属性 Flat
Anchor属性 Top, Right
TextBox1 Text属性 (空)
Anchor属性 Top, Left, Right
TextBox2 Text属性 (空)
Multiline属性 True
Anchor属性 Top, Left, Right
TextBox3 Text属性 (空)
ForeColor属性 Firebrick
Anchor属性 Top, Left, Right
RichTextBox1 Text属性 (空)
ForeColor属性 Steelblue
ReadOnly属性 True
Anchor属性 Top, Bottom, Left, Right

  注:其中的Anchor属性是设置窗体上控件布局用的,当窗体大小改变后各个控件如何在窗体上重新分布由该属性决定,读者可参考更详细的介绍文章来理解。

  其他属性为默认即可,最终布置主窗体界面如下所示:



  现在到了程序的主体部分,即代码部分。在给出代码之前,我想先向大家介绍一下实现的基本原理以及其中的一些逻辑关系。

回复列表 (共6个回复)

沙发

快哦等得有点心急呵呵

板凳

有话能不能一口气讲完啊,,

3 楼

不好意这不是我写的,只是上次从别人那搞来的,后来网址忘了,现在还没找到,如果找到了我会马上发上来的.

  大家在==

4 楼

晕呀

5 楼

http://myhard.yesky.com/20030313/1656782.shtml

6 楼

完整版
http://www.cnblogs.com/epan/archive/2005/04/08/98175.html
不过我想大家一定回失望的
因为根本不是什么P2P而是c/s结构的变象呀
P2P还需要我们好好研究呀---有前途的!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册