📄 tcpsocket.h
字号:
/*****************************************************************************
Copyright (c) 2006 hangzhou yuntian, Inc. All rights reserved.
Filename: TcpSocket.h
Function: 异步Socket类CTcpAsyncSocket:封装了各类最基本的异步通讯相关的方法
Author: lzq,lvzhuqiang@trasin.net
Date: 2007-06-06
*******************************************************************************/
#ifndef _TCPSOCKET_H
#define _TCPSOCKET_H
#include <afxsock.h>
//#define MULT_THREAD 1
#ifdef MULT_THREAD
#include <Afxmt.h>
#endif
class CTcpAsyncSocket
{
public:
#ifdef MULT_THREAD
CCriticalSection m_objLock;
#endif
//unsigned short sa_family;
BOOL m_blCanQuit;
SOCKET m_hSocket;
// SOCKADDR_IPX m_sockAddr;
CString m_strClientIp;
UINT m_iClientPort;
public:
CTcpAsyncSocket();
virtual ~CTcpAsyncSocket();
void Close();
BOOL Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress);
BOOL Create(UINT nSocketPort = 0, int nType=SOCK_STREAM,int nIPPROTO=IPPROTO_UDP,const char* szIPAddress=NULL);
int Receive(void* lpBuf, int nBufLen, int nFlags = 0);
int ReceiveFrom(void* lpBuf, int nBufLen, CString& rSocketAddress, UINT& rSocketPort, int nFlags =0);
int ReceiveFrom(void* lpBuf, int nBufLen, CString& rSocketAddress, UINT& rSocketPort, int nFlags ,int nTimeOut);
int Send(const void* lpBuf, int nBufLen, int nFlags = 0);
int SendTo( const void* lpBuf, int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0 );
BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort);
BOOL IOCtl(long lCommand, DWORD* lpArgument);
BOOL SetNonBlockingMode(BOOL flag);
BOOL Listen(int nConnectionBacklog=5);
BOOL Accept(CTcpAsyncSocket& rConnectedSocket,
SOCKADDR_IN* lpSockAddr = NULL, int* lpSockAddrLen = NULL);
BOOL Accept(CTcpAsyncSocket& rConnectedSocket,CString &strHostIp,UINT &iHostPort);
};
#endif // !defined(AFX_TCPSOCKET_H__B06292E1_54AA_11D3_A1BD_0000E83E4191__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -