📄 net.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -