主题:用vb写“QQ”
guoyong_cy
[专家分:3050] 发布于 2008-07-13 14:03:00
[img]http://blog.programfan.com/upfile/200811/20081107131451.jpg[/img]
软件下载地址: ftp://download:download@60.217.234.148/pfcsetup.exe (连接不稳定,请复制这个地址,用工具比如迅雷下载)
本人的专业和计算机完全不沾边,只是业余的程序爱好者,学了这么多年的程序,准备再把这个软件写完就去深造我的专业知识了,觉得还是有点可惜的
在编程序的过程中,曾经发现好多有用的东西,在这次编写这个软件的时候又想了起来。如果我觉得对大家有用的东西,我会陆续发到这个帖子里!
这次编写的软件,是我写的第一个网络软件,因为曾经没有网络可以学习编程,一直是一大遗。
初步设想功能类似QQ,取名为PFC(programfan chat),没想到好名字!
以前有点这方面知识,写这个软件前,把网络编程看了半天,还是有好多困难的地方,在实践中才逐渐解决的。最初我想用tcp协议写,但server承受能力有限,后来改用udp,丢包问题还没完全解决,不过已经想到办法。现在因为想实现传大量连续数据(比如文件,声音等), 不可能靠server中转,必须点对点传,内网点对点已经用vb+winsock实现(有一些目前p2p软件没实现的穿墙我也无能为力)!
测试说明:
现在已有的功能:登录,读写信息(都是在服务器上操作的),查找功能(还不全),发彩字消息,传文件(UDP,索取模式,解决丢包问题),远程视频。
下一步实现功能:音频(没时间做了,估计要2个月后了)。
本来视频准备用directshow,但老是出错,没搞出来,我也是第一次写这个,不晓得哪里出问题了,还是用的是vfw,自己做了个camera.dll,整个软件资料比较大,打了包,现在发布出来了,有单机测试的server端和客户端,里面有说明,目前还有很多bug。
如果连不上的话就是server端程序没开!
为了安全,server端有个地址跟踪程序,请不要恶意攻击!
软件下载地址:ftp://download:download@60.217.234.148/pfcsetup.exe (连接不稳定,请复制这个地址,用工具比如迅雷下载)
最后更新于:2008-11-07 13:57:00
回复列表 (共57个回复)
21 楼
凡尘 [专家分:9680] 发布于 2008-07-31 17:01:00
这个精神值得大家学习
更让我佩服
22 楼
guoyong_cy [专家分:3050] 发布于 2008-07-31 21:31:00
[em19]等待中......
23 楼
guoyong_cy [专家分:3050] 发布于 2008-08-06 16:51:00
[em10]上周末突然心血来潮想用vb写个游戏平台,搞了两天才用了一个笨得要死的办法实现两个有公网ip的机子之间1v1打星际争霸(因为星际的6111端口是广播消息,我用端口重新绑定把它拦截了,呵呵,但是它要检测来源,所以必须是固定的ip和固定的端口才能让6112端口连接),而且其他游戏或者有1个内网机都没能实现
想做个类似浩方的简直太困难了
最主要的问题就是hook api,我用vb还没能实现。打算用vb做个系统dll替换,系统老是崩溃,不想搞了。目前打算先放弃一下vb了,哎
24 楼
guoyong_cy [专家分:3050] 发布于 2008-08-06 17:04:00
我看到网上有个说vb实现p2p的,只是个点对点而已,不能实现内网对内网的传输
上个星期回去用vb做p2p打洞已经实现了,原来很简单的,就只要winsock就可以了,内网对内网传输(目前只是1层哈)
但是今天到朋友家玩,他用的是艾普网络,一看网关都好多层,还没测试是否打得通,也不知道心跳包(就是保持端口用的)要发到哪一层才能稳定哦,晕倒[em18]
25 楼
tanchuhan [专家分:15140] 发布于 2008-08-06 19:13:00
最近写的程序需要打洞,大概知道点原理,还没去实验(TCP),到时还要回来请教下楼主。
在VCKBASE上看到有一篇:[url]http://www.vckbase.com/document/viewdoc/?id=1773[/url]
26 楼
guoyong_cy [专家分:3050] 发布于 2008-08-06 19:46:00
看过类似的文章,我用的是udp
用tcp打洞关键是这里Sock.SetSockOpt ( SO_REUSEADDR, &nOptValue , sizeof(UINT) )
我在网上下载到一个vb用api封装的socket,自己把它小小改装了下,可以设置SO_REUSEADDR(=&H4)参数,但是那个socket的senddata本身有问题,发出的数据是错的,还没仔细去检查是哪里的问题,而且它的upd是单向传送的,改起来很麻烦。没那么多时间去看,你可以把它找来看看。我也是初学网络,谈不上请教哈
27 楼
guoyong_cy [专家分:3050] 发布于 2008-08-10 17:19:00
还没到外网来过,请大家测试看看
请把结果留个言,谢谢
28 楼
cqz5777 [专家分:210] 发布于 2008-08-15 22:10:00
顶
29 楼
prairiewolf [专家分:290] 发布于 2008-08-18 03:18:00
传文件的时候,要是像BT下载那样(仅对网站上已经有的文件而言)???效率提高很多
30 楼
prairiewolf [专家分:290] 发布于 2008-08-18 03:21:00
回定IP???
我是用动态域名(不是编程),只要ping我的域名,也是ping我的电脑,搞个域名服务器,把游戏人物名字+什么后掇,作为域名,人物上线,IP自动绑定域名,域名是回定的,不知道行不行
我来回复