📄 serversocket.h
字号:
#if !defined(ServerSocket_H)
#define ServerSocket_H
#include "Socket.h"
//#include "ConnectSocket.h"
////////////////////////////////////////////////////////////////////////////////
// ServerSocket
//
// Purpose: class for reading/writing a socket
//##ModelId=424BB6420372
class ServerSocket :
public Socket
{
protected:
//##ModelId=424BB6420374
long _noQued;
public:
//##ModelId=424BB6420382
ServerSocket ( long noQued ) :
Socket(),
_noQued(noQued)
{
}
//##ModelId=424BB6420392
ServerSocket ( ServerSocket & sock ) :
Socket( (Socket &) sock ),
_noQued(0)
{
_noQued = sock._noQued;
}
//##ModelId=424BB6420394
virtual ~ServerSocket ()
{
close();
}
// open methods
//##ModelId=424BB6420396
bool open ( long port )
{
// show using local host
string host = "";//"localhost";
// get socket
_socket = socket(PF_INET,SOCK_STREAM,0);
if ( _socket == INVALID_SOCKET )
return false;
// init address in
initSockAddrIn( host, port, _addrIn );
// bind socket
if ( bind( _socket, (const SOCKADDR *) &_addrIn, sizeof(_addrIn) ) == SOCKET_ERROR )
{
int error = getLastError();
return false;
}
return true;
}
//##ModelId=424BB64203A1
bool listen ()
{
// listen for connection
if ( ::listen( _socket, _noQued ) != 0 )
{
long error = getLastError();
return false;
}
else
return true;
}
//##ModelId=424BB64203A2
bool accept ( Socket & socket )
{
// get new socket
SOCKADDR addr;
int size = sizeof(addr);
memset( &addr, 0, sizeof(addr) );
SOCKET sock =
::accept( _socket, &addr, &size );
if ( sock == INVALID_SOCKET )
{
int err = getLastError();
return false;
}
else
{
socket.create( sock, addr );
return true;
}
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -