想做一个P2P点对点文件交换软件,大家帮忙提供一些资料......关于QQ等等(300分)

  • 主题发起人 主题发起人 xdzhan
  • 开始时间 开始时间
(E_Mail:)
beyondsun@sohu.com
THX again!
 
http://antic_ant.delphibbs.com/index4 上的p2p.exe
可以在局域网内串500m多的文件,昨天在internet上试了一下,还可以,不过速度慢点
可是我能连接别人,但是别人连不上我,因为我是在通过局域网上的internet,但是pp点点通可以
不知道他是如何实现的?
 
http://hp.xilu.com/~maomao/AI/p2p/Xp2p.zip

我做了一个,这种小软件一个人足够了。。。
 
簡單啊,用winsocket
 
p2P
http://tty.yyun.net/lovejingtao/htm/iphone.zip
三个小时。。。
 
仁兄们可以跟你们学习吗?
MSN:feifan731@hotmail.com
to xdzhan:
仁兄,你是李维吗?可以跟你交个朋友吗?我看过李维的书,有许多的问题想请教......
我是个新手,能给个面子吗?
 
我做过一个用UDP来聊天的程序,最近想改进一下,加进可以传输文件的功能,就象QQ那样,
不知道怎么做。
楼上的几位高人,能不能指点一下,如有源代码最好
 
to bobzane
像TCP一样写个窗口,然后收发确认,超时重传,每个包512byte,就OK了。
 
winsock在Delphi7中没有,好像D6有。
另,道长的代码中,TServerSocket有个单元中有,可是怎么没有在控件面板上见到?
 
appcat 说的是有道理的,服务器就是在维护一个IP地址列表
对于至少有一方有静态IP地址的连接 是不需要中心服务器的
但是如果两个都是内部IP,即通过局域网连接到Internet或是拨号
就一定需要一个具有静态Ip地址的中心服务器。
 
做广告乐,www.openext.com
偶新换的公司,不过那个东西是C++写的……
 
国内的维宇做的P&P软件还不错,
你可以参考一下。www.cnverysoft.com

P2P软件的几个关键技术在于:
(1)搜索引擎,
(2)点对点传输方式,
(3)数据及系统的安全性,
(4)系统构架,
(5)如果包括音视频数据的话,还包括可变的音视频编码传输算法

另外还需要考虑的几个问题包括:
(6)盈利模式,单靠个人用户交换文件的方式过于单一,而且可能存在一定的漏洞;
(7)移动办公功能并没有得到强化,不能得到商业用户的支持对产品发展不利,
如何将这部分加强,以真正适应移动办公的模式将值得再考虑;
(8)版权问题,包括音视频编码算法的版权,和传输的各种媒体类文件的版权,
已经有内容提供商和p2p软件开发商之间的法律纠纷出现了。
 
to :张无忌,
你能不能把那个多线程的文件传输部件给我发一份,给你300分
llshui@163.net

 
能不能把搜邮件地址的源码给一份给我,我给分的!谢谢!

我有用!
 
能否告诉小弟,谁能提供p2p的核心代码??
 
procedure TForm1.SSClientRead(Sender: TObject; Socket: TCustomWinSocket);
var C : PCON;
cmd:String;
Buffer : pointer;
nRetr : integer;
fs : TFileStream;
const bufferSize = 1024 ;

begin
C:= Socket.Data ;
case c.Status of
0 :
begin
cmd := trim(Socket.ReceiveText) ;

if Pos('UPLOAD ',uppercase(cmd)) > 0 then
begin
c.FileName := trim(Copy(cmd,Pos(' ',cmd)+1,Length(cmd)));
c.TotalSize := StrToInt(Copy(c.FileName,Pos(' ',c.FileName)+1,Length(c.FileName)));
c.FileName := trim(Copy(c.FileName,1,Pos(' ',c.FileName)));
c.Status := 1;
Socket.Data := C;
Socket.SendText('you can send File !'#13#10);
end;
end;
1 : begin
GetMem(Buffer,BufferSize);
nRetr := Socket.ReceiveBuf(Buffer^,BufferSize);

if not FIleExists('c:/'+c.FileName) then
begin
fs :=TFileStream.Create('c:/'+c.FileName,fmCreate or fmShareDenyNone);
fs.Seek(0,soFromBeginning);
end
else
begin
fs :=TFileStream.Create('c:/'+c.FileName,fmOpenWrite or fmShareDenyNone);
fs.Seek(0,soFromEnd);
end;

fs.WriteBuffer(Buffer^,nRetr);

fs.Destroy;
FreeMem(Buffer);
end;
end;
end;

 
我也写过的两个电脑对传的,但后来考虑到开发成本太高,受不了了就放弃了
 
局域网内,或者有一方是公网IP,都好办。关键是2台机器分别在不同的局域网内时,该怎么办?建立连接就是个问题。
楼上说的P2P工具我没有试过,也许她偷摸在程序里设定了一个公网IP。
 
这里有一篇实现P2P原理的文档。
http://cnscenter.future.co.kr/resource/ietf/ind-draft/draft-ford-midcom-p2p-00.txt
希望大家一起讨论一下,详细请看:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2218066
 
后退
顶部