好久没有来了,公司项目差不多结束了,这个简单应用也应该结束。

     本篇会把我写的这个工程中核心代码讲解一下,并附有程序下载:p2p.rar

     首先从服务器说起。P2P也需要服务器,而且服务器不能至于nat中,或是在局域网中。当然也是有办法的,如果要在局域网中测试,可以在路由中设置一个DMZ主机,也就是设置一个IP的机器为类外网机器,可以直接被外网访问。这样再运行服务器就可以了。其他内网中的客户端就可以用服务器的外网IP来登录。
     下面是服务器界面:
     

     服务器代码较简单,主要实现以下几个功能:
     1. 保存客户端列表信息,当有新客户端登录时或登出时将列表发送给所有客户端。
     2. 如果需要,帮助通知客户端进行UDP打洞,特别是发送文件时。
     以下是主要代码:
     

Code

 

     这样一个简单的服务器就完成了。下面介绍客户端的代码,比较复杂。

     客户端界面:
     

     客户端主要实现以下几个功能:
     1. 登录或登出服务器,与服务器进行通信。
     2. 与客户端通信,包括发送消息和发送文件。
     以下是主要代码:
     

Code

     客户端的重点是发送文件,所以,如何发送完整,并接收完整是关键,下面是发送和接收的过程,主要是实现如何不丢失:
     
Code

     这些就是客户端的主要代码,再加上用于界面操作等代码就可以运行了,快试试吧。
posted on 2009-01-16 13:08  Jason Yao  阅读(761)  评论(8编辑  收藏  举报