📄 socket.h
字号:
#ifndef _SOCKET_H
#define _SOCKET_H
#include "cmd.h"
#include "cirbuf.h"
#include "iocp/iocomplete.h"
#include "utility/lock.h"
#include <list>
class ksocket
{
public:
ksocket(SockHandle sockdl):sockdl(sockdl),canRecv(true),canSend(true){}
ksocket():canRecv(true),canSend(true){}
Cmd *unpack();
int recv(unsigned int size);
int send(char *buf,unsigned int size);
void setCanRecv()
{
Scope_lock scope_lock(lock);
canRecv = true;
}
void setCanSend()
{
Scope_lock scope_lock(lock);
canSend = true;
}
unsigned int put(const char *buffer,unsigned int size)
{
Scope_lock scope_lock(lock);
return recv_buf.put(buffer,size);
}
private:
IO_CONTEXT io_context[2];
SockHandle sockdl;
bool canRecv;
bool canSend;
cirbuf<40960> recv_buf;//接受缓冲
char sendbuf[40960];
char recvbuf[40960];
Lock lock;
//std::list<Cmd*> send_que;//等待发送的数据包
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -