第1页共16页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共16页Winsocket入门教程一:多线程阻塞式服务器和阻塞式客户端程序(TCP)收藏最近因为工作需要学习了Winsocket客户端服务器模型程序的设计
在学习的过程中,我发现学习Winsocket的资料不多并且十分的零散
我一直没有找到一本学习Winsocket方面的经典国外著作
而且这些资料中并没有提供源代码文件,所以我只有将这些源代码在自己敲一遍
在敲代码的过程中,我发现了这些源代码中的一些错误的地方和一些已经过时的Windows程序的输写方法(Win16
现将学习经验和通过阅读各种资料总结出来的模型以及代码分享出来
希望对学习Winsocket的初学者有一定的帮助
我们首先来了解一下什么是Winsocket
Winsocket是unix/linux下的berkeleysocket在Windows下的实现
unix/linux下的berkeleysocket是网络通讯方面的基石,应用程序通过调用berkeleysocket的API进行相互通讯,berkeleysocket则利用具体的网络通讯协议和操作系统的调用来为我们完成具体的通讯工作
Winsocket保留了berkeleysocket的所有内容,并且为了其能在Win32消息机制和多线程的环境下更好的工作
Winsocket在berkeleysocket原有的基础上对其进行了扩充
如我们可以利用WSAAsyncSelect对Socket消息进行订阅,以及使用WSAGetLastError对多线程环境下的Winsocket错误进行捕获
接着再让我们来了解一下服务器\客户端应用程序模型
该模型是构建分布式系统的模型之一
服务器程序一直处于监听的状态,等待客户端程序的连接
客户端程序像服务器程序发送连接请求,服务器程序接受该连接请