net.cpp

来自「ActiveX Setup Server Version 2.0.5 Chips」· C++ 代码 · 共 115 行

CPP
115
字号
#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <unistd.h>#include "net.h"#include "def.h"CSock::CSock(){	m_ListenSocket = 0;	m_Socket = 0;}CSock::~CSock(){}bool CSock::Socket(){	int so_reuseaddr = 1;	int ret;	m_ListenSocket = socket(AF_INET, SOCK_STREAM, 0);		if(!m_ListenSocket)		return false;	ret = setsockopt(m_ListenSocket, SOL_SOCKET, SO_REUSEADDR,			&so_reuseaddr, sizeof(so_reuseaddr));	if(ret < 0)		return false;	return true;}bool CSock::Bind(){	bzero(&m_ServerAddr, sizeof(sockaddr_in));	m_ServerAddr.sin_family = AF_INET;	m_ServerAddr.sin_addr.s_addr = INADDR_ANY;	m_ServerAddr.sin_port = htons(m_iPort);	if(!bind(m_ListenSocket, (struct sockaddr *)&m_ServerAddr, sizeof(m_ServerAddr))) {		return true;	} else {		perror("bind()\n");		return false;	}}bool CSock::Listen(){	if(!listen(m_ListenSocket, DF_MAX_CONNECT))		return true;	return false;}bool CSock::Init(int iPort){	m_iPort = iPort;	if(Socket())		if(Bind())			if(Listen())				return true;		return false;}int CSock::Accept(){	m_Socket = accept(m_ListenSocket, (struct sockaddr *)&m_ClientAddr, &m_ClientAddrLen);	return m_Socket;}int CSock::Send(char *pszData, int iDataLen){	return send(m_Socket, pszData, iDataLen, MSG_NOSIGNAL);}int CSock::Recv(char *pszBuff, int iBuffLen, int iFlags){	return recv(m_Socket, pszBuff, iBuffLen, iFlags|MSG_NOSIGNAL);}void CSock::Disconnect(){	close(m_Socket);	close(m_ListenSocket);}void CSock::Close(){	close(m_Socket);}/*///////////////////////////////////////////////////////////////////////////////////////////int Send(int iSocket, char *pszData, int iDataLen){	return send(iSocket, pszData, iDataLen, 0);//	return send(iSocket, pszData, iDataLen, MSG_DONTWAIT);}int Recv(int iSocket, char *pszBuff, int iBuffLen){	return recv(iSocket, pszBuff, iBuffLen, 0);//	return recv(iSocket, pszBuff, iBuffLen, MSG_DONTWAIT);}*////////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?