
网络编程
文章平均质量分 51
fangjm2009
这个作者很懒,什么都没留下…
展开
-
句柄
句柄概念在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色。但由此而产生的句柄概念也大同小异,比如:>(Microsoft Press,by Richard Wilton)一书中句柄的概念是:在Windows环境中,句柄是用来标识项目的,这些项目包括: *.模块(module) *.任务(task) *.实例(instance) *.文件(file)转载 2009-09-28 11:38:00 · 257 阅读 · 0 评论 -
waiforsingleobject()
WaitForSingleObject的用法 WaitForSingleObject的用法 DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); 参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果事件是有信号状态返回WAIT_OBJE转载 2009-09-29 10:43:00 · 1859 阅读 · 0 评论 -
select()
select() 简述: 确定一个或多个套接口的状态,如需要则等待。 #include int PASCAL FAR select( int nfds, fd_set FAR* readfds, fd_set FAR* writefds, fd_set FAR* exceptfds, const struct timeval FAR* timeout); nfds:本参数忽略,转载 2009-09-29 16:19:00 · 790 阅读 · 0 评论 -
GlobalAlloc()
GlobalAlloc 该函数从堆中分配一定数目的字节数.Win32内存管理器并不提供相互分开的局部和全局堆.提供这个函数只是为了与16位的Windows相兼容. 函数原型: HGLOBAL GlobalAlloc( UINT uFlags, // 分配属性(方式) DWORD dwBytes // 分配的字节数 ); 参数uFlags: 指定如原创 2009-09-28 11:26:00 · 587 阅读 · 0 评论 -
WSASetEvent()
简述:将指定的事件对象状态设置为有信号。 #include BOOL WSAAPI WSASetEvent( WSAEVENT hEvent ); hEvent:标识一个开放的事件对象句柄。 返回值: 如果函数成功,返回真TRUE。 如果函数失败,返回假FALSE。可通过调用WSAGetLastError()来获取进一步的错误信息。 错误代码: W转载 2009-09-28 15:04:00 · 1382 阅读 · 0 评论 -
基于winsock的阻塞和非阻塞通信模型
基于winsock的阻塞和非阻塞通信模型 摘要:在应用程序开发中,经常涉及各式各样的机器的交互通信问题。在Windows操作系统下,可以使用MFC中的CSocket,也可以使用以Windows Api为基础的Winsock等等。本文主要描述了Winsock的两种实现方式,即阻塞方式和非阻塞方式。并对应这两种方式,描述了Select模式和IOCP模式。 关键字:Winsoc转载 2009-09-28 09:24:00 · 1130 阅读 · 0 评论 -
WSAWaitForMultipleEvents()
简述:只要指定事件对象中的一个或全部处于有信号状态,或者超时间隔到,则返回。 #include DWORD WSAAPI WSAWaitForMultipleEvents( DWORD cEvents, const WSAEVENT FAR * lphEvents, BOOL fWaitAll, DWORD dwTimeout, BOOL fAlertab转载 2009-09-28 09:35:00 · 3130 阅读 · 0 评论 -
select 模型解释
套接字模式:阻塞套接字和非阻塞套接字。或者叫同步套接字和异步套接字。套接字模型:描述如何对套接字的I/O行为进行管理。Winsock提供的I/O模型一共有五种: select,WSAAsyncSelect,WSAEventSelect,Overlapped,Completion。今天先讲解select。 1:select模型择模(选型) 先看一下下面的这句代码转载 2009-09-28 09:20:00 · 463 阅读 · 0 评论 -
CloseHandle()
CloseHandle() CloseHandle函数 BOOL CloseHandle( HANDLE hObject ); 参数 hObject :代表一个已打开对象handle。 返回值 TRUE:执行成功; FALSE:执行失败,可以调用GetLastError()获知失败原因。 函数说明: 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等翻译 2009-10-09 16:24:00 · 541 阅读 · 0 评论 -
WSASend()
WSASend() 简述:在一个已连接的套接口上发送数据。 #include int WSAAPI WSASend ( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesSent, int iFlags, LPWSAOVERLAPPED lpOverlapped, L转载 2009-09-29 14:26:00 · 6751 阅读 · 1 评论 -
WSAEventSelect()
WSAEventSelect() 简述:确定与所提供的FD_XXX网络事件集合相关的一个事件对象。 #include int WSAAPI WSAEventSelect ( SOCKET s, WSAEVENT hEventObject,转载 2009-09-29 11:23:00 · 592 阅读 · 0 评论 -
临界区
不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。每个进程中访问临界资源的那段代码称为临界区(Critical Section)。 每个进程中访问临界资源的那段程序称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对转载 2009-09-28 11:49:00 · 517 阅读 · 0 评论 -
线程同步之临界区
在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问转载 2009-09-28 12:01:00 · 726 阅读 · 0 评论 -
accept()
简述: 在一个套接口接受一个连接。 #include SOCKET PASCAL FAR accept( SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen); s:套接口描述字,该套接口在listen()后监听连接。 addr:(可选)指针,指向一缓冲区,其中接收为通讯层所知的连接实体的地址。A转载 2009-09-28 10:05:00 · 567 阅读 · 0 评论 -
事件对象
事件对象(event object ) 事件对象和互斥对象(参见百度百科互斥对象http://baike.baidu.com/view/1769610.htm),一样都属于内核对象,它包含一个使用计数,一个用于标识该事件是一个自动重置还是一个人工重置的布尔值,和另一个用于指定该事件处于已通知状态还是未通知状态的布尔值。 由上面所述,可见事件对象可分为两种,一种是人工重置的,另一种是自动重置转载 2009-09-28 11:40:00 · 415 阅读 · 0 评论 -
EnterCriticalSection()
VC声明 VOID EnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection // critical section ); 函数功能 申请进入临界对象 参数说明 lpCriticalSection 临界对象指针转载 2009-09-28 12:08:00 · 564 阅读 · 0 评论 -
CreateThread()
微软在Windows API中提供了建立新的线程的函数CreateThread, 概述: 当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程,大致做如下步骤: 1在内核对象中分配一个线程标识/句柄,可供管理,由CreateThread返回 2把线程退出码置为STILL_ACTIVE,把线程挂起转载 2009-09-28 16:00:00 · 1086 阅读 · 0 评论 -
ResetEvent()
ResetEvent ResetEvent 这个函数把指定的事件对象设置为无信号状态。 BOOL ResetEvent( HANDLE hEvent ); 参数说明: hEvent [in] 指向事件对象的句柄.由 CreateEvent or OpenEvent 函数返回。 这个句柄需要拥有EVENT_MODIFY_STATE 访问权限. 函数成功,返回非0值,否则返回转载 2009-09-29 10:47:00 · 613 阅读 · 0 评论 -
WSAEnumNetworkEvents()
WSAEnumNetworkEvents() 简述:检测所指定的套接口上网络事件的发生。 #include int WSAAPI WSAEnumNetworkEvents ( SOCKET s, WSAEVENT hEventObject, LPWSANETWORKEVENTS lpNetworkEvents, LPINT lpiCount); s:标识套接口的描述字。 hEv转载 2009-09-29 11:12:00 · 2684 阅读 · 0 评论 -
临界区
本文假定您熟悉 Win32、C++ 和多线程处理。下载本文的代码:CriticalSections.exe (415KB) 摘要临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。 本文深入研究临界区的原理,以揭示在查找死锁和确认性能问题过程中的转载 2009-10-09 18:01:00 · 2062 阅读 · 0 评论