基于tcp协议实现p2p

基于tcp协议实现p2p

ID:18881110

大小:71.82 KB

页数:8页

时间:2018-09-24

基于tcp协议实现p2p_第1页
基于tcp协议实现p2p_第2页
基于tcp协议实现p2p_第3页
基于tcp协议实现p2p_第4页
基于tcp协议实现p2p_第5页
资源描述:

《基于tcp协议实现p2p》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于TCP协议实现P2P(Peer To Peer)思想(2007-06-1511:13:32)转载▼分类:.NET    昨天做了个小项目,是一个P2P的聊天程序,先简单介绍下P2P。    对等网络(P2P,PeertoPeer)是一种资源(计算、存储、通信与信息等)分布利用与共享的网络体系架构,与目前网络中占据主导地位的客户机服务器(Client/Server,C/S)体系架构相对应。P2P可以用来进行流媒体通信(如话音、视频或即时消息),也可以传送如控制信令、管理信息和其它数据文件,具体的应用如NapsterMP3音乐文件搜索与共享、BitTor

2、rent多点文件下载和SkypeVoIP话音通信等。简单的理解,我前面写的TCP,UDP的程序,都是需要客户端、服务器,就是比较简单的C/S结构,而P2P则是集Server/Client于一身,本身即是服务器端,又是客户端,严格来说,P2P不算是一种技术,而是一种思想,此思想还被列入国家研究课题,现在我们简单的看看这个P2P基本都是些什么东西,把昨天做的项目扔出来。    示例:P2P聊天程序     窗体(界面Image没拷回来,做了个丑的,凑合看)       上来先输入用户名及你要连接的IP地址,连接上以后,聊天界面如下图,因为程序应用了P2P,因

3、此不要试图开两个窗口测试程序,因为开一个就已经把端口占用了。我们以连本机为例对该程序做一个测试:         在该项目中,最好将所有的方法及对流的处理都新建一个类,在该类中做所有操作,当然,所有工作都在界面程序中做也可以。Form1就是个界面,你在它脑袋上面再usingSystem.Net,usingSystem.Net.Socket等等显得很不伦不类,为了规范起见,我新建一个类MethodsList操作所有方法。    MethodsList类://定义一个需要string类型参数的委托,用来将发送至本机的消息回调publicdelegatevoi

4、dMyDelegate(stringmessage);   classMethodsList   {       //储存本机用户名       privatestringm_Name;        //储存对方IP地址       privatestringm_Ip;       //本机的TcpListener       privateTcpListenerm_MyListener;       //指示变量       privateboolm_IsListen=true;       //网络流       privateNetworkStr

5、eamm_NetStream;       //线程       privateThreadm_MyThread;       //MyDelegate委托类型的事件       publiceventMyDelegateMyEvent;       //构造函数中接收用户名,对方IP地址       publicMethodsList(stringname,stringip)       {           //储存           m_Name=name;           m_Ip=ip;           //实例化TcpListen

6、er           m_MyListener=newTcpListener(8888);           m_MyListener.Start();           //开启新线程监听8888端口           m_MyThread=newThread(newThreadStart(Run));           m_MyThread.IsBackground=true;           m_MyThread.Start();                  }       //监听来自对方信息的方法       privat

7、evoidRun()       {           while(m_IsListen)           {               Socketsock=m_MyListener.AcceptSocket();               m_NetStream=newNetworkStream(sock);               //读取对方传递过来的信息               StreamReadersr=newStreamReader(m_NetStream);               stringtempChat=s

8、r.ReadLine();               //如果读取到,则触发事

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。