?? compat.h.svn-base
字號:
#ifndef __COMPAT_H__#define __COMPAT_H__#include <sys/socket.h>#include <netdb.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>typedef int SOCKET; // get round windows definitions.struct SOCKADDR_IN { sockaddr_in ADDR; // we are wrapping this structure. /* this is bad as we just assume that the address "addr" is valid here * need a real check */ SOCKADDR_IN(const std::string& address, unsigned short port, short family = AF_INET) { ADDR.sin_port = port; ADDR.sin_family = family; ok = (inet_aton(address.c_str(), &ADDR.sin_addr)); } SOCKADDR_IN(const SOCKADDR_IN& addr) { ADDR = addr.ADDR; ok = addr.ok; } SOCKADDR_IN operator = (const SOCKADDR_IN& addr) { ADDR = addr.ADDR; ok = addr.ok; return *this; } operator bool() const {return ok;} operator const sockaddr_in () const { return ADDR; } operator const sockaddr () const { sockaddr addr; std::copy((char*)&ADDR, (char*)&ADDR + sizeof(ADDR), (char*)&addr); return addr; } size_t get_size() const {return sizeof(ADDR);} char* get_sin_addr() { return (char*)&ADDR.sin_addr; } void set_port(unsigned short newport) {ADDR.sin_port = newport;} void set_ip(const std::string& newip) { ok = (inet_aton(newip.c_str(), &ADDR.sin_addr)); } void zeroaddress() { ADDR.sin_addr.s_addr = 0; } private: bool ok;};bool Connect(SOCKET sockfd, const SOCKADDR_IN& addr);bool Socket(SOCKET& s, int domain, int type, int protocol);bool Send(int &CharsSent, SOCKET s, const char *msg, size_t len, int flags);bool Recv(int &CharsRecv, SOCKET s, char *buf, size_t len, int flags);void Closesocket(const SOCKET& s);void initNetworking();#endif // #ifndef __COMPAT_H__
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -