📄 asynctcpsocket.h
字号:
#ifndef UTILS_BASE_ASYNCTCPSOCKET_H_#define UTILS_BASE_ASYNCTCPSOCKET_H_#include "asyncpacketsocket.h"namespace utils_base {// Simulates UDP semantics over TCP. Send and Recv packet sizes// are preserved, and drops packets silently on Send, rather than// buffer them in user space.class AsyncTCPSocket : public AsyncPacketSocket {public: AsyncTCPSocket(AsyncSocket* socket); virtual ~AsyncTCPSocket(); virtual int Send(const void *pv, size_t cb); virtual int SendTo(const void *pv, size_t cb, const SocketAddress& addr); sigslot::signal1<AsyncTCPSocket*> SignalConnect; sigslot::signal2<AsyncTCPSocket*,int> SignalClose;protected: int SendRaw(const void * pv, size_t cb); virtual void ProcessInput(char * data, size_t& len);private: char* inbuf_, * outbuf_; size_t insize_, inpos_, outsize_, outpos_; int Flush(); // Called by the underlying socket void OnConnectEvent(AsyncSocket* socket); void OnReadEvent(AsyncSocket* socket); void OnWriteEvent(AsyncSocket* socket); void OnCloseEvent(AsyncSocket* socket, int error);};} // namespace utils_base#endif // UTILS_BASE_ASYNCTCPSOCKET_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -