_enResult CTcpServerSocket::ResetFd() { int32 i32Flag = 1; //关闭现有的FD CloseFd(); //生产新的FD SOCK_OPEN(m_streamFd, AF_INET, SOCK_STREAM, IPPROTO_TCP); //设置属性 setsockopt(m_streamFd, SOL_SOCKET, SO_REUSEADDR, &i32Flag, sizeof(i32Flag)); if(m_strLocalAddr.length() == 0) { SetLocalPort(m_u16LocalPort); } else { SetLocalAddrAndPort(m_strLocalAddr, m_u16LocalPort); } //侦听 Listen(m_u32QueueLen); }
CUdpSocket::CUdpSocket(uint16 u16LocalPort) : CCommunicatingSocket(SOCK_DGRAM, IPPROTO_UDP) { m_strLocalAddr = ""; m_u16LocalPort = u16LocalPort; SetLocalPort(u16LocalPort); SetBroadcast(); }
//CTcpServerSocket CTcpServerSocket::CTcpServerSocket(uint16 u16LocalPort, uint32 u32QueueLen) : CSocket(SOCK_STREAM, IPPROTO_TCP) { m_strLocalAddr = ""; m_u16LocalPort = u16LocalPort; m_u32QueueLen = u32QueueLen; SetLocalPort(u16LocalPort); Listen(u32QueueLen); }
int ReadConfigurationFile(int fd) { static int first_time=1; char *errmsg; if(first_time) { errmsg=ReadConfigFile(1); if(errmsg) { if(fd!=-1) write_string(fd,errmsg); free(errmsg); return(1); } SetLocalPort(ConfigInteger(HTTP_Port)); first_time=0; } errmsg=ReadConfigFile(0); if(errmsg) { if(fd!=-1) write_string(fd,errmsg); free(errmsg); return(1); } SyslogLevel=ConfigInteger(LogLevel); SetDNSTimeout(ConfigInteger(DNSTimeout)); SetConnectTimeout(ConfigInteger(ConnectTimeout)); return(0); }
_enResult CUdpSocket::ResetFd() { int32 i32Flag = 1; //关闭现有的FD CloseFd(); //生产新的FD SOCK_OPEN(m_streamFd, AF_INET, SOCK_DGRAM, IPPROTO_UDP); //设置属性 setsockopt(m_streamFd, SOL_SOCKET, SO_REUSEADDR, &i32Flag, sizeof(i32Flag)); if((m_strLocalAddr.length() != 0) && (m_u16LocalPort != 0)) { SetLocalAddrAndPort(m_strLocalAddr, m_u16LocalPort); } else if(m_u16LocalPort != 0) { SetLocalPort(m_u16LocalPort); } SetBroadcast(); }