• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






C++是神码东东。。。

Nothing to Say
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | | 订阅 订阅 | 管理

2012年7月17日

套接字
摘要: c++ 使用socket实现C/S端文件的下载传输首先是服务器端,大致说下流程:服务器创建线程去处理应答accept(),当接受到客户端连接请求时,首先获取要发送的指定的文件数据总大小给客户端,接着就是循环读取要发送的文件数据流向客户端发送文件数据,每次都判断循环读取到的数据实际大小,当实际读取到的数据总大小为0时,表示文件发送结束。下面是服务器server端实现:声明部分:public: afx_msg void OnBnClickedButton1();public: BOOL InitSocket(); //初始化并创建套接字 static DWORD WINAPI ThreadProc 阅读全文
posted @ 2012-07-17 17:25 凨丶 阅读(341) 评论(0) 推荐(0)
 
c++实现双链表
摘要: // Double_List.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <fstream>#include "conio.h"using namespace std;struct _DOUBLE_LINK_NODE //定义一个双链表结构{ char * data; struct _DOUBLE_LINK_NODE* prev; //双链表的前驱 struct 阅读全文
posted @ 2012-07-17 17:24 凨丶 阅读(1716) 评论(0) 推荐(0)
 
堆栈的区别
摘要: 堆和栈的区别一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。 4、文字常量区 — 常量字符串就... 阅读全文
posted @ 2012-07-17 17:24 凨丶 阅读(289) 评论(0) 推荐(0)
 
windows常用消息1
摘要: 附录A Windows 常用消息大全表A-1 Windows消息分布消息范围说 明0 ~ WM_USER – 1系统消息WM_USER ~ 0x7FFF自定义窗口类整数消息WM_APP ~ 0xBFFF应用程序自定义消息0xC000 ~ 0xFFFF应用程序字符串消息> 0xFFFF为以后系统应用保留表A-2 常用Windows消息消息名称值说 明WM_NULL0x0000空消息,此消息将被接收窗口忽略WM_CREATE0x0001应用程序创建一个窗口WM_DESTROY0x0002一个窗口被销毁WM_MOVE0x0003移动一个窗口WM_SIZE0x0005改变一个窗口的大小WM_AC 阅读全文
posted @ 2012-07-17 17:22 凨丶 阅读(1018) 评论(0) 推荐(0)
 
windows常用消息2
摘要: WM_CTLCOLORSCROLLBAR0x0137绘制滚动条控件前发送此消息给它的父窗口,可用来设置滚动条控件的文本和背景颜色WM_CTLCOLORSTATIC0x0138绘制静态控件前发送此消息给它的父窗口,可用来设置静态控件的文本和背景颜色WM_MOUSEMOVE0x0200鼠标移动WM_LBUTTONDOWN0x0201按下鼠标左键WM_LBUTTONUP0x0202释放鼠标左键WM_LBUTTONDBLCLK0x0203双击鼠标左键WM_RBUTTONDOWN0x0204按下鼠标右键WM_RBUTTONUP0x0205释放鼠标右键WM_RBUTTONDBLCLK0x0206双击鼠标右 阅读全文
posted @ 2012-07-17 17:22 凨丶 阅读(377) 评论(0) 推荐(0)
 
shell_3
摘要: 提供 SE_ERR_XXX 之类的错误代码是为了兼容 ShellExecute。使用 GetLastError可以获得更详细的错误信息。返回值可以使下列之一:ErrorDescriptionERROR_FILE_NOT_FOUND指定文件不存在ERROR_PATH_NOT_FOUND指定路径不存在ERROR_DDE_FAIL动态数据交换 (DDE) 处理失败ERROR_NO_ASSOCIATION没有与制定文件名扩展对应的应用程序ERROR_ACCESS_DENIED访问指定文件被拒绝ERROR_DLL_NOT_FOUND无法找到运行应用程序所必须的库文件ERROR_CANCELLED这个函数 阅读全文
posted @ 2012-07-17 17:21 凨丶 阅读(375) 评论(0) 推荐(0)
 
shell_2
摘要: LPCTSTR lpFile;LPCTSTR lpParameters;LPCTSTR lpDirectory;int nShow;HINSTANCE hInstApp;LPVOID lpIDList;LPCTSTR lpClass;HKEY hkeyClass;DWORD dwHotKey;union {HANDLE hIcon;HANDLE hMonitor;} DUMMYUNIONNAME;HANDLE hProcess; } SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO; 在C#中其结构为 public struct SHELLEXECUTEINFO // 阅读全文
posted @ 2012-07-17 17:20 凨丶 阅读(398) 评论(0) 推荐(0)
 
shell_1
摘要: okadler0518的专栏精创之作《雷神的微软平台安全宝典》诚邀译者 移动业界领袖会议·上海·6.20 第四届云计算大会门票抢购:史上最低价,每日限5张! 【分享季1】:网友推荐130个经典资源,分享再赠分! SHELLEXECUTEINFO 和 ShellExecuteEx的使用分类: 2009-08-04 09:48 1122人阅读 评论(0) 收藏 举报 SHELLEXECUTEINFO 和 ShellExecuteEx的使用 在日常工作中用到的一些知识,很久没有总结过,前几日参加一个会议,很是无聊。自己思索着自己这两年来所做过的东西,写着写着居然也写下了 100 阅读全文
posted @ 2012-07-17 17:19 凨丶 阅读(162) 评论(0) 推荐(0)
 
vc常用代码3
摘要: //关机函数************************************************void ShutDown(void)//2000 or NT{OSVERSIONINFO osv;osv.dwOSVersionInfoSize=sizeof OSVERSIONINFO;GetVersionEx(&osv);if(osv.dwPlatformId==VER_PLATFORM_WIN32_NT)//VER_PLATFORM_WIN32_WINDOWS 98 Me用这个宏{HANDLE hProcess,hToken;TOKEN_PRIVILEGES Privil 阅读全文
posted @ 2012-07-17 17:18 凨丶 阅读(388) 评论(0) 推荐(0)
 
vc常用代码2
摘要: ……21,程序只允许一个实例运行//在这个位置调用FirstInstance函数BOOL CWindowsApp::InitInstance(){if (!FirstInstance())return FALSE; //已经有实例存在了,退出AfxEnableControlContainer();}//FirstInstance函数BOOL FirstInstance(){CWnd *pWndPrev;//根据主窗口类名和主窗口名判断是否已经有实例存在了if (pWndPrev = CWnd::FindWindow("#32770","Windows秘书" 阅读全文
posted @ 2012-07-17 17:17 凨丶 阅读(296) 评论(0) 推荐(0)
 
vc常用代码1
摘要: VC常用代码分类:VC 学习2009-03-07 15:281114人阅读评论(0)收藏举报===========================================================//注意事项//先执行OnInitDialog()函数,然后执行构造函数!//98下没有新宋体//XP下窗口高度加8===========================================================………1,滚动条处理方法//1,设置范围m_spscroll.SetScrollRange(0,200);SCROLLINFO si;si.cbSize=s 阅读全文
posted @ 2012-07-17 17:15 凨丶 阅读(1013) 评论(0) 推荐(0)
 
Socket
摘要: SOCKET WSAAPI socket( int af,//协议地址族 int type,//协议套接字类型 int protocol//传输层协议);AfMeaningAF_UNSPEC0The address family is unspecified.AF_INET2The Internet Protocol version 4 (IPv4) address family.AF_NETBIOS17The NetBIOS address family. This address family is only supported if a Windows Sockets provider 阅读全文
posted @ 2012-07-17 17:14 凨丶 阅读(441) 评论(0) 推荐(0)
 
自定义消息
摘要: 1.定义消息#define WM_MYMSG WM_USER+100 //自定义消息2.声明消息处理函数afx_msg LRESULT MyMsgFun(WPARAM,LPARAM);//自定义消息函数3.实现消息处理函数LRESULT CheheDlg::MyMsgFun(WPARAM wParam,LPARAM lParam){ return 0;}4.消息映射 ON_MESSAGE(WM_MYMSG,MyMsgFun)//自定义消息映射5.发送消息::PostMessage(this->m_hWnd,WM_MYMSG,NULL,NULL); 阅读全文
posted @ 2012-07-17 17:13 凨丶 阅读(173) 评论(0) 推荐(0)
 
内核对象
摘要: 无论怎样创建内核对象,都要向系统指明将通过调用C l o s e H a n d l e 来结束对该对象的操作:BOOL CloseHandle(HANDLE hobj);该函数首先检查调用进程的句柄表,以确保传递给它的索引(句柄)用于标识一个进程实际上无权访问的对象。如果该索引是有效的,那么系统就可 以获得内核对象的数据结构的地址,并可确定该结构中的使用计数的数据成员。如果使用计数是0 ,该内核便从内存中撤消该内核对象。如果将一个无效句柄传递给C l o s e H a n d l e ,将会出现两种情况之一。如果进程运行正常,C l o s e H a n d l e 返回FA L S E 阅读全文
posted @ 2012-07-17 17:13 凨丶 阅读(186) 评论(0) 推荐(0)
 
线程
摘要: l 窗口置顶::SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | WS_EX_TOPMOST);l 取消置顶::SetWindowPos(GetSafeHwnd(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);l 写入配置文件。::WritePrivateProfileString("Settings","AlwaysOnTop",m_bAlwaysOnTop? "1":"0& 阅读全文
posted @ 2012-07-17 17:12 凨丶 阅读(576) 评论(0) 推荐(0)
 
编程规范
摘要: 1禁止在头文件中定义变量2禁止在extern “C”中包含头文件,否则会导致extern “C”嵌套,嵌套太多导致编译错误3每个模块提供多个.c文件,在同一目录下,目录名为模块名,并提供一个.h文件4.如果一个模块包含多个模块,则每个模块提供一个.h文件名为子模块名5.头文件排版方式:1.按字母升序 2.将不稳定(常修改)的放在前面6.一个函数仅完成一项功能。重复代码尽量写成函数7.避免函数过程,最好不超过50行。8.代码嵌套不超过4层9.函数不变参数要写为const10.避免使用全局变量和静态变量11.函数参数个数不超过5个。检查参数的有效性(是否为NULL)12.命名规则l unix风格: 阅读全文
posted @ 2012-07-17 17:11 凨丶 阅读(608) 评论(0) 推荐(0)
 
计算机网络
摘要: 同一网段:ARP广播,得到目的主机的MAC地址,封装成帧发送过去。不同网段:ARP广播,得到网关MAC地址,从网卡发送给网关(目标IP还是目的主机的)。发送给吓一跳路由(MAC改成下一条路由的MAC,否则路由会丢弃),发送给目标网络,发送给目的IP1、物理层(Physical)物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础。物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。2、数据链路层(Date Link)数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其连接。媒体是长期的,连接是有生存期的。在连接生存期内,收发两端可 阅读全文
posted @ 2012-07-17 17:10 凨丶 阅读(479) 评论(0) 推荐(0)
 
文件操作
摘要: ifstream f("D:\\file.txt",ios_base::binary); string str; char arr; while(f) { f.get(arr); str+=arr; } cout<<str; ofstream f("D:\\file.txt"); char ch; string str; while(cin.get(ch)) { str+=ch; } f<<str;//处理中文路径方法1.路径前面加上加 L"路径"2.打开文件前加上 setlocale(LC_ALL," 阅读全文
posted @ 2012-07-17 17:09 凨丶 阅读(155) 评论(0) 推荐(0)
 
动态链接库
摘要: 动态链接库:DLL(Dynamic Linkable Library)kernel32.dll处理内存管理和进程调度user32.dll控制用户界面gdi32.dll图形处理win32 dllmfc dll 1 #include<iostream> 2 3 #include<windows.h> 4 5 using namespace std; 6 7 typedef int(*LoadFunc)(int,int); 8 9 10 11 int main(void)12 13 {14 15 16 17 HINSTANCE hInstance;18 19 ... 阅读全文
posted @ 2012-07-17 17:08 凨丶 阅读(394) 评论(0) 推荐(0)