设为首页收藏本站language 语言切换
查看: 1224|回复: 0
收起左侧

C#下用P2P技术实现点对点聊天

[复制链接]
发表于 2010-2-25 10:25:45 | 显示全部楼层 |阅读模式
<p ><center><font color="#000099"><strong>2P技术简介</strong></font></center><p >2P,英文Peer-to-Peer的缩写,中译为对等互联或点对点技术。P2P技术可以让用户可以直接连接到其他用户的计算机,进行文件共享与交换,同时P2P在深度搜索、分布计算、协同工作等方面也大有用途。<p >简单地说,P2P就是一种用于不同PC用户之间,不经过中继设备直接交换数据或服务的技术,它允许Internet用户直接使用对方的文件。每个人可以直接连接到其他用户的计算机,并进行文件的交换,而不需要连接到服务器上再进行浏览与下载。<p >目前Internet的存储模式是“内容位于中心”,而P2P技术的运用将使Internet上的内容向边缘移动。这将带来以下改变:<p >首先,客户不再需要将文件上传到服务器,而只需要使用P2P与其他计算机进行共享;<p >其次,使用P2P技术的计算机不需要固定的IP地址和永久的Internet连接,这使得占有极大比例的拨号上网用户也可以享受P2P带来的变革。<p ><center><font color="#000099"><strong>实例介绍</strong></font></center><p >理解P2P技术的最好方法莫过于仔细观察并理解一个实际的P2P应用程序。C#作为微软.Net战略的重要棋子,对网络编程提供了很好的支持和优化。本文就通过一个程序,向大家介绍一下C#下的P2P编程的方法和实现机理。本文的这个程序不是很有用,但却很直观地给出了P2P(点对点)编程以及套接口编程的一些基本知识和概念。它是建立在TcpListener以及TcpClient这两个类基础上的。程序实现的原理也比较简单,但是用到了P2P技术重返“非中心化”的基本原则。简言之,用这个程序可以在网络中发送、接受消息,任何一台计算机既可以作为服务器端,又可以作为客户端。<p ><b>系统要求:</b><p >1.Widows 2000服务器版操作系统或后续版本的操作系统。<p >2.Visual Studio.net Framework正式版。<p ><b>具体方法:</b><p >首先,打开VS.net,新建一个C#项目(注意:模板为Windows应用程序),不妨命名为"2Pchat"。图示如下:<p ><center><img  src="http://www.hh010.com/upload_files/article/244/9_gflvm836429.gif"></center><p >其次,参照ICQ、OICQ等聊天工具,我们可以将程序的主界面布置成和常见聊天工具的消息发送对话框类似的布局。不过由于程序仅一个主界面,所以还要添加一些诸如“开始监听”、“停止监听”等控制按钮。同时,程序是支持昵称显示的。于是,按照这个思想,我们可以开始布置程序的主界面了。首先,往主界面上拖放如下一些控件:两个Label控件、三个Button控件、三个TextBox控件、一个RichTextBox控件以及一个StatusBar控件。各个控件的属性设置如下表所示:<p ><center><ccid_nobr><table border="1" width="502" class="content"><tr><td>Form1</td><td>Text属性</td><td>2P聊天工具</td></tr><tr><td rowspan=2>Label1</td><td>Text属性</td><td>目标计算机地址:</td></tr><tr><td>TestSlign属性</td><td>MiddleCenter</td></tr><tr><td rowspan=2>Label2</td><td>Text属性</td><td>昵称:</td></tr><tr><td>TextAlign属性</td><td>MiddleCenter</td></tr><tr><td rowspan=2>Button1</td><td>Text属性</td><td>开始监听</td></tr><tr><td>FlatStyle属性</td><td>Flat</td></tr><tr><td rowspan=4>Button2</td><td>Text属性</td><td>停止监听</td></tr><tr><td>FlatStyle属性</td><td>Flat</td></tr><tr><td>Enabled属性</td><td>False</td></tr><tr><td>Anchor属性</td><td>Top, Right</td></tr><tr><td rowspan=3>Button3</td><td>Text属性</td><td>发送消息</td></tr><tr><td>FlatStyle属性</td><td>Flat</td></tr><tr><td>Anchor属性</td><td>Top, Right</td></tr><tr><td rowspan=2>TextBox1</td><td>Text属性</td><td>(空)</td></tr><tr><td>Anchor属性</td><td>Top, Left, Right</td></tr><tr><td rowspan=3>TextBox2</td><td>Text属性</td><td>(空)</td></tr><tr><td>Multiline属性</td><td>True</td></tr><tr><td>Anchor属性</td><td>Top, Left, Right</td></tr><tr><td rowspan=3>TextBox3</td><td>Text属性</td><td>(空)</td></tr><tr><td>ForeColor属性</td><td>Firebrick</td></tr><tr><td>Anchor属性</td><td>Top, Left, Right</td></tr><tr><td rowspan=4>RichTextBox1</td><td>Text属性</td><td>(空)</td></tr><tr><td>ForeColor属性</td><td>Steelblue</td></tr><tr><td>ReadOnly属性</td><td>True</td></tr><tr><td>Anchor属性</td><td>Top, Bottom, Left, Right</td></tr></table></ccid_nobr></center><p >注:其中的Anchor属性是设置窗体上控件布局用的,当窗体大小改变后各个控件如何在窗体上重新分布由该属性决定,读者可参考更详细的介绍文章来理解。<p >其他属性为默认即可,最终布置主窗体界面如下所示:<p ><center><img  src="http://www.hh010.com/upload_files/article/244/9_douzb336430.gif"></center><p >现在到了程序的主体部分,即代码部分。在给出代码之前,我想先向大家介绍一下实现的基本原理以及其中的一些逻辑关系。                                 <p align="center"><font color="FF0000" >1</font>2<span class="content01">下一页&gt;&gt;</span></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-12 01:11 , Processed in 0.171989 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表