- 1、本文档共73页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
network--WinSock的多线程编程.pptx
WinSock的多线程编程;outline;;Socket工作模式;阻塞模式;阻塞模型;阻塞模式socket 服务器端伪代码;阻塞模式socket客户端伪代码;;注意;可能阻塞套接字的API;非阻塞模式;;;设置非阻塞套接字-ioctlsocket()函数;cmd
FIONBIO:允许或禁止套接字s的非阻塞模式。
argp:zero,禁止非阻塞模式;
argp:nonzero,允许非阻塞模式;
当一个套接字建立时,默认为阻塞模式;
FIONREAD:确定套接字s可读入的数据量。argp 指向一个无符号长整型。
如果s是SOCKET_STREAM类型,则FIONREAD返回在一次recv()中所接收的所有数据量。
如果s是SOCK_DGRAM 型,则FIONREAD返回套接字上排队的第一个数据报大小。
;;ioctlsocket使用举例;WSAEWOULDBLOCK错误;“阻塞”模式 Vs 非阻塞”模式;;对策;应用程序、进程及线程的关系;;;何时采用多线程??;;并发服务器;;单客户机服务器流程图(TCP);线程函数;创建多线程;CreateThread();CreateThread()函数参数;;必须设置的参数:
???数3:lpStartAddress
参数4: lpParameter
参数6: lpThreadId
线程函数
DWORD WINAPI ThreadFunc (LPVOID param)
;;_beginthread();;等待函数;单对象等待函数WaitForSingleObject();多对象等待函数;WaitForSingleObject()函数的使用;;;WaitForMultipleObjects()函数的使用;;;;创建多线程的服务器;server = socket();;多线程在Server(TCP)程序中的使用;多线程在Server(TCP)程序中的使用;多线程在Server(TCP)程序中的使用;win32常见线程调度函数;ResumeThread():恢复线程;SwitchToThread():线程切换;ExitThread():退出线程;TerminateThread():终止线程;Sleep():线程睡眠;结束_beginthread()创建的线程;线程与同步;Win 32 线程同步;互斥对象 Mutex;;信号对象 Semaphore;;事件对象 Event;A. 创建事件对象
HANDLE CreateEvent(NULL,FALSE,TRUE,NULL)
自动重置事件
HANDLE CreateEvent(NULL,TRUE,FALSE,NULL)
B. 在线程访问共享资源之前调用
WaitForSingleObject();
C.重新设置成有信号状态
SetEvent(EVENT_HANDLE ); ;临界区对象(关键代码段)CriticalSection;;summarize;homework
文档评论(0)