winsock
阿泽1024
这个作者很懒,什么都没留下…
展开
-
WinsockIO之WSAEventSelect模型
取自朋友的笔记转载 2021-12-16 08:46:00 · 143 阅读 · 0 评论 -
WinsockIO之WSAAsyncSelect模式
WSAAsynSelect模型: WSAAsynSelect模型也是一个常用的异步I/O模型。应用程序可以在一个套接字上接收以 WINDOWS消息为基础的网络事件通知。该模型的实现方法是通过调用WSAAsynSelect函 数 自动将套接字设置为非阻塞模式,并向WINDOWS注册一个或多个网络时间,并提供一 个通知时使用的窗口句柄。当注册的事件发生时,对应的窗口将收到一个基于消息的通知。1.在WM_CREATE消息处理函数中,初始化Windows Socket library,创建监听套接字,绑定,监.原创 2021-12-15 13:29:43 · 771 阅读 · 0 评论 -
WinsockIO之select模式
1、创建fd_set集合:fd_set ReadSet;2、对集合进行初始化:FD_ZERO( &ReadSet) 把集合初始化成空队列.3、将socket放到集合中:FD_SET(pNew->SocketName, &ReadSet);4、通过select来查看是否有待决的socket:select(0, &ReadSet, NULL, NULL, NULL); select的返回值为处于待决的socket个数int WSAAPI sele...原创 2021-12-15 13:16:53 · 2410 阅读 · 0 评论 -
socket和sockaddr以及sockaddr_in
socket可视为给机器创建了一个接口,但是具体的ip地址和端口都没有;sockaddr是用来给socket命名的;如:ip等。但是它的sa_data没有详细区分,故使用更为详细的sockaddr_in。(bind函数是使用sockaddr类型来作为形参的,所以后面要将sockAddr_in创建的对象用强转变为sockaddr类型)sockaddr_in可以输入具体的端口和ip,如上图,调用bind函数时,为什么要转化sockaddr_in为sockaddr,如上面的蓝色区域。.原创 2021-11-21 15:53:34 · 1808 阅读 · 0 评论 -
三次握手和四次挥手(个人理解)
三次握手首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。前两次确定客户端的收发数据可以正常使用;第一次确定服务器可以正常收数据;第三次可以确定第二次成功发送数据,即可以正常发数据;四次挥手【注意】中断连接端可以是Client端,也可以是Server端。第一次挥手:Client端主动断开连接,并发送一个包含F..原创 2021-11-20 15:00:01 · 1598 阅读 · 0 评论 -
winsock的多线程服务器
tcp客户端// Service.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>using namespace std;#include <WinSock2.h>typedef struct { SOCKET sockClient; char szIp[16]; DWORD dwThreadName;}RecvThread;DWORD WINAPI Threa原创 2021-11-19 15:50:43 · 1491 阅读 · 0 评论 -
winsock的service和client端
service端// Service.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>using namespace std;#include <WinSock2.h>int main(){ WSADATA wd; if (0 != WSAStartup(MAKEWORD(2, 2), &wd)) { WSACleanup(); }原创 2021-11-19 09:08:48 · 1413 阅读 · 1 评论