提交 4f74e498 编写于 作者: Peacoor Zomboss's avatar Peacoor Zomboss

Don't use sock queue now

上级 493f852b
......@@ -6,7 +6,7 @@ cxx32prefix = i686-w64-mingw32-
cxx64prefix = x86_64-w64-mingw32-
objdir = ./obj/
bindir = ../bin/
src = hookdll.cpp fkhook.cpp inlinehook.cpp sockqueue.cpp
src = hookdll.cpp fkhook.cpp inlinehook.cpp
obj32 = $(patsubst %.cpp, $(objdir)%_32.o, $(src))
obj64 = $(patsubst %.cpp, $(objdir)%_64.o, $(src))
target32 = $(bindir)hookdll32.dll
......
#pragma once
#include <winsock2.h>
#define MAX_SOCK_QUEUE 64
// Socket循环队列,使socket排队关闭而不是立即关闭
class SockQueue
{
private:
SOCKET socks[MAX_SOCK_QUEUE];
int current;
public:
SockQueue();
~SockQueue();
void add(SOCKET s);
};
#include <winsock2.h>
#include "fkhook.h"
#include "sockqueue.h"
#include "platform.h"
#include <vector>
......
#include "sockqueue.h"
SockQueue::SockQueue()
{
memset(&socks, 0, MAX_SOCK_QUEUE * sizeof(SOCKET));
current = 0;
}
SockQueue::~SockQueue()
{
for (int i = 0; i < MAX_SOCK_QUEUE; i++)
if (socks[i] != 0)
closesocket(socks[i]);
}
void SockQueue::add(SOCKET s)
{
if (socks[current] != 0)
closesocket(socks[current]);
socks[current++] = s;
if (current == MAX_SOCK_QUEUE)
current = 0;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册