VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板
VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板

目前位置: VCer资源中心 >>> VCer开源
子级分类: 系统程序 网络工具 媒体工具 管理软件 游戏娱乐 BBS联赛作品 可重用类
我也来开源一个!>>>


P2P 之 UDP穿透NAT的原理与实现
 
 
论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。 首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。 最开始NAT是运行在路由器上的一个功能模块。 最先提出的是基本的NAT,它的产生基于如下事实:一个私有网络(域)中的节点中只有很少的节点需要与外网连接(呵呵,这是在上世纪90年代中期提出的)。那么这个子网中其实只有少数的节点需要全球唯一的IP地址,其他的节点的IP地址应该是可以重用的。 因此,基本的NAT实现的功能很简单,在子网内使用一个保留的IP子网段,这些IP对外是不可见的。子网内只有少数一些IP地址可以对应到真正全球唯一的IP地址。如果这些节点需要访问外部网络,那么基本NAT就负责将这个节点的子网内IP转化为一个全球唯一的IP然后发送出去。(基本的NAT会改变IP包中的原IP地址,但是不会改变IP包中的端口) 关于基本的NAT可以参看RFC 1631 另外一种NAT叫做N ...
作者:shootingstars bluejoe张贴于2007-01-27 22:52:20.0,共阅读2231次,回复0
HTTPSVR: Demonstrates World Wide Web HTTP Server
 
 
HTTPSVR is an MFC sample that demonstrates the use of MFC and its Windows Sockets (WinSock) classes in implementing a simple World Wide Web HTTP server. HTTPSVR turns any computer connected to a network into a publishing platform viewable from any of a number of web browsers available on the market today, such as Microsoft’s Internet Explorer. HTTPSVR also minimally supports the Common Gateway Interface (CGI). You can create forms and execute CGI-compatible server-side applications using the standard hypertext markup language (HTML) tags. To increase performance, HTTPSVR checks a file’s last m ...
作者:M$ bluejoe张贴于2007-01-23 13:28:31.0,共阅读2559次,回复0
FIRE: Demonstrates Windows 95 Common Controls
 
 
FIRE is a Windows® 95 Common Controls dialog-based sample application. It simulates fire and allows you to change various properties of the fire by adjusting Windows Common Controls on the dialog. When you run FIRE, the Windows 95 Fire dialog box appears. To change attributes of the fire, do any of the following. Click Tab to change the palette that renders the fire. Click and drag Vertical Slider along the right side of the fire to adjust the ceiling of the flames. Note the Progress Indicator control below the fire that tells you when the adjustment is complete. To use the Tre ...
作者:M$ bluejoe张贴于2007-01-23 13:09:41.0,共阅读1965次,回复0
具有XP风格的图标菜单
 
 
具有XP风格的图标菜单,直接include调用即可具有XP风格的图标菜单,直接include调用即可
作者:不祥 xler张贴于2004-05-01 00:54:46.0,共阅读6680次,回复8
支持应用级协议的Socket通讯包CHost
 
 
C/S模式是网络应用开发中使用最普遍的一种方式,但是如果在MFC基础上做开发总感觉不是很方便,程序员需要将较多的时间和精力放在通讯、协议包的实现上面,而实际上,应用的核心功能却要比这些基础部分重要的多。 CHost开发包为笔者自行开发,主要完成对客户端、服务器端、以及应用级协议包格式的封装。 CHost开发包主要包括以下几个类: CBlockingSocket: 支持阻塞方式的Socket,相对于CSocket而言,CBlockingSocket实现了对超时的处理,并允许对Windows消息的并行处理; CHost: CBlockingSocket的派生类; CServer: CHost的派生类,实现对服务器端操作的封装,支持TCP/UDP; CClient: CHost的派生类,实现对客户端操作的封装,支持TCP/UDP; CProtocol: 实现对应用级协议包的封装,类定义如下: class CProtocol { public: CProtocol(int nSize); bool IsValid(); int m_nCommand; //协议号 int m_nSize; //包大小 private: long m_lHead; //标识码 }; m_lHead用以判断数据包的版本,它的值由用户在s ...
作者:不祥 bluejoe张贴于2004-04-11 16:16:53.0,共阅读4551次,回复1
A10战斗机及源代码
 
一个打飞机的游戏,估计不少人玩过!我也没有时间看源码,不知道怎么做的,有兴趣自己下下来研究吧!
作者:不祥 jerry张贴于2004-06-14 20:42:56.0,共阅读3554次,回复6
多线程验证DoubleCheckedLocking的线程安全
 
如果没有出现提示:"单件失败",就说明当前的测试是成功的, 先开了100条线程,不知道能不能说明问题 :)class CStaticThread : public CObject {//在类中作一个Static线程,每需要一个新线程,都需要new一下 public: DWORD GetThreadID() {return m_dwThreadID;} BOOL RunThread(); BOOL StopThread(DWORD dwThreadID); static void SetEventRunTogether(BOOL bIn); private: void SetThreadID(DWORD dwThreadID) {m_dwThreadID = dwThreadID;} static DWORD WINAPI ThreadBuildIn(LPVOID lpArg); virtual DWORD ThreadBuildIn(void); void Clear(); void SetFlag_Stop(BOOL bIn) {m_bStop = bIn;} BOOL GetFlag_Stop() {return m_bStop;} HANDLE GetEventRunTogether(); private: DWO ...
作者:不祥 LoseSpeed张贴于2006-05-11 03:41:29.0,共阅读2408次,回复1
Double-Check Locking Demo
 
060509T0042 1.弄了个单件单例演示,明天弄个多线程看看线程安全么还有会不会死琐.代码确实优雅多了void CMainDlg::OnButton1() { //采用单件之后优雅多了:) TRACE(" GetCounter = %d\r\n", CDCLock::GetInstance()->GetCounter()); CDCLock::GetInstance()->SetCounter(CDCLock::GetInstance()->GetCounter() + 2); TRACE(" GetCounter = %d\r\n", CDCLock::GetInstance()->GetCounter()); } //CDCLock Means "Class Double Checked Locking From Singleton", It Was Thread Safed //Referenced Doc Below: //"http://www.huihoo.com/ace_tao/double_checked_locking.html" 这两天干活正好用到"单件模式",先写个Demo先
作者:不祥 LoseSpeed张贴于2006-05-09 01:28:24.0,共阅读2768次,回复1
Jerry原创 IEProxy (IE代理设置)
 
 
功能说明: 利用IE上网时,为了避免更换代理代理的麻烦,特开发此软件。该软件在IE工具条上插入具有下拉菜单的按钮,用户可以选择该下拉菜单的选项改变IE代理。同时为了方便用户使用,该软件还具有以下实用功能: 1 检验代理速度,目前支持HTTP协议,SOCKS4和SOCK5还需完善 2 导入导出代理列表文件 3 从网页上下载代理 4 提供IE插件 使用说明:(第一次使用时必看) 1 编译软件后,会产生三个文件,config.xml是配置文件,ieproxy.exe是可执行文件,ieproxydll.dll是ie插件,由于没有制作安装包,请自己注册ieproxydll.dll,方法如下:命令行模式下regsvr32 ieproxydll.dll ,注册成功后,IE插件会加入到IE中. 2 重新打开IE工具条后可能没有出现具有下拉菜单的按钮,此时,请选择查看=>工具栏=>IE 代理,按钮将出现在IE工具条上. 3 更新代理,例如 从白云黄鹤网络资源版的的[今日代理]贴更新代理,用web形式登陆白云黄鹤的网络资源版,并进入含有代理的帖子,在页面点击鼠标右键,选择属性,可以看到页面的url地址,当前是:http://202.112.20.132/cgi-bin/bbscon?board=NetResource&file=M.1087781474.A&num=- ...
作者:不祥 jerry张贴于2004-07-20 12:56:19.0,共阅读7586次,回复6
颜色选择的ccombox类
 
从codeguru上看到的,使用过,觉得还不错,转载过来!使用很简单,看看源码就知道了,这里不详细解释了!
作者:不祥 jerry张贴于2004-06-14 20:28:56.0,共阅读3061次,回复1
BBS联赛作品A2011
 
A2. /* 动态规划解法, 时间复杂度 n^4 */ #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXSIZE 10000 typedef struct { short price; /* 该格的价值 */ char r, c; /* 行号和列号 */ int result; /* 从左上角走到该格的最大价值 */ } GRID; /* 用于qsort排序的回调函数,用于比较两个格子的价值 */ int grid_comp(const void* g1, const void* g2) { return *(short*)g1-*(short*)g2; } /* n*n个格子 */ GRID grid[MAXSIZE]; int n, k; /* 读取数据 */ void getdata() { int i, j, m; GRID *p = grid; scanf ("%d%d", &n, &k); for (i=0; i<n; ++i) for (j=0; j<n; ++j) { scanf("%d", &m); p->price = m; p->r = i; ...
作者:不祥 imcc张贴于2004-05-06 21:26:57.0,共阅读3039次,回复1
BBS联赛作品A3001
 
A1. /* * 算法阐述: * 对与警卫A,有两种途径找到同伴:或者直接找到能与自己组对的单独警卫B组对;或者拆散一组警卫(C,D)与其中C组对,然后对余下警卫D重复上述步骤,直到某一步时直接找到能组对的单独警卫,这种情况认为是A组对成功,并按上述途径进行组对;否则A不能找到同伴,。 * 按上方法依次遍历所有警卫,若i能组对成功则按找到的途径组对,最后得到的结果为最优。(详细证明未给出) * 在一次搜索过程某步骤中,若警卫i通过拆开某对警卫(m,n),并与其中m组对为(i,m)后,最终无法组对成功,则m是稳定的,在这次搜索的以后步骤中单个警卫i不能再与m组对。如此可以大大加快搜索速度。 * 程序复杂度不超过O(n^2)。 */ #define cin infile #define MAX_N 223 #include<iostream> #include<fstream> using namespace std; struct PartnerList{ int p[MAX_N]; int pnum; PartnerList(){for(pnum=MAX_N;pnum>0;)p[--pnum]=0;}//初始化,pnum与p[]都置零 void Add(int i){p[pnum++]=i;}//列表中添加能够组对 ...
作者:不祥 imcc张贴于2004-05-06 21:44:18.0,共阅读2798次,回复1
简单记事本(sdk编的)
 
SDK
作者:不祥 kgj2008张贴于2005-04-06 00:24:52.0,共阅读3071次,回复0
单机版的三子棋游戏
 
 
在很多游戏网站上,都没有发现‘三子棋’游戏。 所以我就自己做了这个游戏。 程序中涉及到了 DLL 的编程。 这是我的家乡人们经常玩的游戏。 规则如下: 1)下子阶段:在这个阶段,只能下棋子而不能移动棋子。像五子棋一样,尽量使自己的子能凑成‘三’,当你的棋子凑成‘三’了以后,你可以把对方任一个子废掉(该子将会变灰色,下子完了以后,它将会被去掉)。 2)行棋阶段:下完子了,就进入行棋阶段。在这个阶段,不能下棋子而只能移动棋子,也是尽量使自己的子凑成‘三’,当你的棋子凑成‘三’了以后,你可以把对方任一个子去掉。 3)直到谁的子剩下少于三个,谁就输了。 4)还有谁无子可动,超时3次也会告负。
作者:不祥 _younggle_张贴于2004-12-25 20:18:27.0,共阅读3040次,回复2
写注册表类
 
提供方便的接口写注册表继承或者直接引入本类,可以简单地实现改写注册表,写入自己所要键值的功能。 本类提供四个接口: BOOL SetRegStringValue(CString dirkey,LPCTSTR Subkey,LPCTSTR Value); //自动创建子键并赋值 BOOL SetRegDwordValue(CString dirkey,LPCSTR Subkey,DWORD Value);//自动创建子键并赋值 CString GetRegStringValue(CString dirkey,LPCTSTR subkey); DWORD GetRegDwordValue(CString dirkey,LPCTSTR subkey);测试环境:windows2000 server
作者:不祥 xler张贴于2004-05-13 15:08:43.0,共阅读3554次,回复1
映射网络驱动器工具软件_VC源码_LoseSpeed_TestLoginA_V0.0.8.rar
 
 
WNetAddConnection2 && WNetCancelConnection2
作者:不祥 LoseSpeed张贴于2004-12-27 23:45:12.0,共阅读2745次,回复0
雷霆战机
 
 
本人最近写的一个飞行类的游戏,主要目的是为了锻炼一下自己,提高编程水平,由于本人C++基础不是很好,所以程序中有很多地方设计的不是很合理,希望大家能够多提建议! vc6.0,directx win98下的BUG已修正!
作者:不祥 guifang张贴于2004-08-25 12:29:29.0,共阅读3976次,回复10
QQ  BossKey
 
小玩具一个,在qqldr没有老板键之前大家先玩这个了. 使用方法: 启动程序后设置热键. 比如 ctrl+q 之后按一次,qq的全部窗口消失,再按一次, 全部出来.多个qq也可以.程序启动后没有界面.呼出界面用第二个热键.之后把qq设置为不显示系统托盘图标,就达到了完全隐藏qq的目的,是在办公室用qq很方便 :) 大家多提意见.. 适用所有版本qq.操作系统要求 win2000 or later . 还在用 98 的朋友就不要下了.不能用 :( 见代码注释
作者:不祥 Bccv张贴于2004-05-25 17:09:50.0,共阅读3012次,回复2
俄罗斯方块部分
 
俄罗斯部分源代码俄罗斯
作者:不祥 ISeekYou张贴于2004-02-23 10:53:02.0,共阅读2709次,回复1
实现金山毒霸的界面
 
 
很简单,就几个类: CAboutDlg CColorButton CColorStatic CHyperLink CInterfaceApp CInterfaceDlgCColorButton的类定义 class CColorButton : public CButton { // Construction public: CColorButton(); // Attributes public: // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CColorButton) //}}AFX_VIRTUAL // Implementation public: CBrush m_brush; void SetBackColor(COLORREF BackColor); virtual ~CColorButton(); // Generated message map functions protected: COLORREF m_BackColor; //{{AFX_MSG(CColorButto ...
作者:不祥 bluejoe张贴于2004-05-01 01:07:24.0,共阅读4436次,回复1

页次: 7/9页 记录总数172 9 7 [ 1 2 3 4 5 6 7 8 9 10 ] 8 :