亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mysocket.h

?? socket 編程實例 singleServerMultipleClientSrc
?? H
字號:
#ifndef mySocket_H
#define mySocket_H

#include "../myHostInfo/myHostInfo.h"

#ifdef UNIX
    #include <sys/socket.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <errno.h>
    #include <iostream.h>
    #include <sys/types.h>
    #include <stropts.h>
    #include <sys/filio.h>
#else
    #include <winsock2.h>
#endif

// so far we only consider the TCP socket, UDP will be added in later release
//const int MAX_RECV_LEN = 1048576;
const int MAX_RECV_LEN = 8096;
const int MAX_MSG_LEN = 1024;
const int PORTNUM = 1200;

class mySocket
{

protected:

	/*
	   only used when the socket is used for client communication
	   once this is done, the next necessary call is setSocketId(int)
	*/
	mySocket() {}
	void setSocketId(int socketFd) { socketId = socketFd; }

protected:

    int portNumber;        // Socket port number    
    int socketId;          // Socket file descriptor

    int blocking;          // Blocking flag
    int bindFlag;          // Binding flag

    struct sockaddr_in clientAddr;    // Address of the client that sent data

public:

    mySocket(int);                       // given a port number, create a socket

    virtual ~mySocket()
    {
		#ifdef WINDOWS_XP
            closesocket(socketId);
        #else
            close(socketId);
        #endif
     }

public:

	// socket options : ON/OFF

    void setDebug(int);
    void setReuseAddr(int);
    void setKeepAlive(int);
    void setLingerOnOff(bool);
	void setLingerSeconds(int);
    void setSocketBlocking(int);

    // size of the send and receive buffer

    void setSendBufSize(int);
    void setReceiveBufSize(int);

    // retrieve socket option settings

    int  getDebug();
    int  getReuseAddr();
    int  getKeepAlive();
    int  getSendBufSize();
    int  getReceiveBufSize();
    int  getSocketBlocking() { return blocking; }
	int  getLingerSeconds();
    bool getLingerOnOff();
	
    // returns the socket file descriptor
    int getSocketId() { return socketId; }

	// returns the port number
	int getPortNumber() { return portNumber; }

	// show the socket 
	friend ostream& operator<<(ostream&,mySocket&);

private:

	// Gets the system error
	#ifdef WINDOWS_XP
		void detectErrorOpenWinSocket(int*,string&);
		void detectErrorSetSocketOption(int*,string&);
		void detectErrorGetSocketOption(int*,string&);
	#endif

    #ifdef UNIX
		char *sGetError()
		{
           return strerror(errno);
        }
	#endif
};

class myTcpSocket : public mySocket
{

private:

	#ifdef WINDOWS_XP
		// Windows version of the MSG_WAITALL option
		int XPrecieveMessage(string&);
	#endif

public:

	// initialization work, the clean up is in the destructor
	static void initialize();

public:

	/* 
	   Constructor. used for creating instances dedicated to client 
	   communication:

	   when accept() is successful, a socketId is generated and returned
	   this socket id is then used to build a new socket using the following
	   constructor, therefore, the next necessary call should be setSocketId()
	   using this newly generated socket fd
	*/
	myTcpSocket() {};
	~myTcpSocket();

	// Constructor.  Used to create a new TCP socket given a port
	myTcpSocket(int portId) : mySocket(portId) { };

	/*
	   Sends a message to a connected host. The number of bytes sent is returned
	   can be either server call or client call
	*/
	int sendMessage(string&);

	/*
	   receive messages and stores the message in a buffer
	*/
	int recieveMessage(string&);

	/*
	   Binds the socket to an address and port number
	   a server call
	*/
	void bindSocket();

	/*
	   accepts a connecting client.  The address of the connected client 
	   is stored in the parameter
	   a server call
	*/
	myTcpSocket* acceptClient(string&);

	// Listens to connecting clients, a server call
	void listenToClient(int numPorts = 5);

	// connect to the server, a client call
	virtual void connectToServer(string&,hostType);

private:

	void detectErrorBind(int*,string&);
	void detectErrorSend(int*,string&);
	void detectErrorRecv(int*,string&);
	void detectErrorConnect(int*,string&);
    void detectErrorAccept(int*,string&);
	void detectErrorListen(int*,string&);

};

#endif
        

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频一区| 丝袜美腿亚洲色图| 国产精品亚洲午夜一区二区三区| 精品国产乱码久久久久久牛牛| 国产乱国产乱300精品| 国产成人亚洲精品狼色在线| 国产日韩一级二级三级| 91美女片黄在线| 蜜桃91丨九色丨蝌蚪91桃色| 欧美激情一区二区三区蜜桃视频| 欧美日韩国产免费一区二区| 国产成人av电影免费在线观看| 亚洲精品国产成人久久av盗摄 | 丝袜亚洲精品中文字幕一区| 午夜视频一区在线观看| 亚洲欧洲另类国产综合| 日韩精品在线网站| 欧美三级中文字| 91在线免费视频观看| 国精产品一区一区三区mba桃花| 亚洲免费资源在线播放| 中日韩免费视频中文字幕| 欧美成人精品1314www| 亚洲国产综合色| 中文字幕一区二区5566日韩| 中文字幕中文字幕一区| 久久久综合网站| 精品国产污污免费网站入口 | 亚洲啪啪综合av一区二区三区| 一区二区国产盗摄色噜噜| 日本一区二区成人| 亚洲精品综合在线| 麻豆国产精品官网| 99综合影院在线| 色综合天天综合网天天看片| 国产精品一二三| 欧美日韩免费一区二区三区| 亚洲欧美综合在线精品| 午夜电影网亚洲视频| 国产成人av自拍| 欧美精品在线视频| 日韩一区二区免费高清| 日韩一区二区在线看| 国产精品不卡一区二区三区| 日韩精品久久久久久| 成年人国产精品| 丁香激情综合国产| 88在线观看91蜜桃国自产| 欧美一区国产二区| 精品国产三级电影在线观看| 亚洲日本中文字幕区| 亚洲图片自拍偷拍| 99久久免费精品高清特色大片| 日韩欧美一卡二卡| 亚洲成人免费av| 久久se精品一区精品二区| 麻豆精品一二三| 精品视频一区三区九区| 亚洲素人一区二区| 成人免费视频免费观看| 欧美变态tickling挠脚心| 亚洲123区在线观看| 日本高清成人免费播放| 日韩午夜在线影院| 亚洲一卡二卡三卡四卡无卡久久 | 国产精品天美传媒沈樵| 免费人成精品欧美精品| 国产91在线观看丝袜| 精品伦理精品一区| 蜜桃视频免费观看一区| 欧美一区二区三区喷汁尤物| 亚洲综合免费观看高清完整版在线 | 国内久久婷婷综合| 精品三级av在线| 国产在线一区二区| 亚洲国产精品ⅴa在线观看| 国产福利91精品一区二区三区| 精品国产一区二区三区四区四 | 欧美日韩亚洲综合在线| 亚洲精品视频免费看| 91免费版在线看| 一区二区国产盗摄色噜噜| 色婷婷香蕉在线一区二区| 久久综合久色欧美综合狠狠| 一区二区三区欧美激情| 色一情一伦一子一伦一区| 一区二区三区蜜桃| 91精品国模一区二区三区| 日本亚洲天堂网| 日本精品裸体写真集在线观看| 亚洲精品乱码久久久久久日本蜜臀| 色综合婷婷久久| 日韩在线观看一区二区| 精品国产制服丝袜高跟| 高清国产一区二区三区| 国产精品成人午夜| 欧美在线999| 久久精品视频在线免费观看| 婷婷中文字幕一区三区| 精品欧美一区二区在线观看| 国产精品18久久久久久久网站| 欧美国产精品一区| 欧美性猛交xxxx乱大交退制版| 成人免费在线观看入口| 在线免费观看日韩欧美| 久久精品国产亚洲5555| 日韩美女精品在线| 在线不卡一区二区| 丁香婷婷深情五月亚洲| 亚洲在线免费播放| 国产亚洲污的网站| 欧美女孩性生活视频| 国产成人aaa| 日韩电影在线观看电影| 国产精品美女久久久久久2018| 欧美亚洲自拍偷拍| 国产精品99久久久久久久vr| 亚洲三级在线观看| 精品成人在线观看| 色av成人天堂桃色av| 精品一区二区三区免费观看 | 亚洲精品一区二区三区精华液| bt7086福利一区国产| 免费不卡在线观看| 亚洲综合一区在线| 国产精品白丝在线| 国产欧美日产一区| 日韩一区二区免费电影| 欧美体内she精高潮| 风间由美中文字幕在线看视频国产欧美| 午夜欧美大尺度福利影院在线看| 国产三级一区二区| 精品久久一区二区三区| 欧美性猛片aaaaaaa做受| 97久久超碰国产精品| 夫妻av一区二区| 国产精品综合一区二区三区| 水野朝阳av一区二区三区| 中文字幕五月欧美| 国产三级精品视频| 精品免费国产一区二区三区四区| 欧美羞羞免费网站| 日本二三区不卡| 97久久超碰国产精品电影| 懂色av中文一区二区三区 | 一区二区三区欧美视频| 国产精品久久久久7777按摩| 26uuu成人网一区二区三区| 91精品国产色综合久久ai换脸| 在线影视一区二区三区| 色悠悠亚洲一区二区| 91在线小视频| 色婷婷av一区二区三区大白胸| 成人国产视频在线观看| 国产大陆a不卡| 成人av电影观看| 99久久综合色| 在线观看视频一区| 欧美三区在线观看| 欧美一级艳片视频免费观看| 欧美一二三四在线| 久久影音资源网| 国产精品免费久久| 一区二区三区精品在线| 亚洲一二三区视频在线观看| 午夜欧美电影在线观看| 老司机精品视频在线| 国产综合色视频| 成人网页在线观看| 日本精品一区二区三区高清 | 日韩欧美国产1| 国产欧美日韩三级| 一色桃子久久精品亚洲| 一区二区在线观看视频| 亚洲国产人成综合网站| 美女视频黄久久| 成人精品鲁一区一区二区| 91在线视频观看| 91精品国产综合久久婷婷香蕉| 亚洲精品一区二区精华| 1024精品合集| 日韩电影在线观看电影| 成人午夜大片免费观看| 欧美色图免费看| 久久精品视频免费| 亚洲123区在线观看| 国产成人综合视频| 欧美吞精做爰啪啪高潮| 久久久美女毛片| 亚洲一区二区三区爽爽爽爽爽| 精品亚洲成a人在线观看| 一本大道久久精品懂色aⅴ| 欧美一卡二卡三卡| 亚洲欧美日韩精品久久久久| 久久99精品久久久久久久久久久久 | 色欧美日韩亚洲| 26uuu久久综合| 日韩中文欧美在线| 在线观看亚洲一区| 国产精品久久毛片|