青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

Windows 下的最簡單的TCP服務(wù)器客戶端

他們是短連接的,服務(wù)器接受客戶端之后,馬上發(fā)送一個消息,發(fā)送完以后立即將客戶端斷開掉,然后繼續(xù)等待下一個連接.


使用Winsocket2必須要引用到的頭文件和需要包含到的鏈接庫文件:

#include <WinSock2.h>
#pragma comment( lib, 
"ws2_32.lib" )



以下代碼是Winsocket2的系統(tǒng)初始化和關(guān)閉的封裝代碼.

class WinSocketSystem
{
public:
    WinSocketSystem()
    
{
        
int iResult = WSAStartup( MAKEWORD( 22 ), &wsaData );
        
if (iResult != NO_ERROR)
        
{
            exit(
-1);
        }

    }


    
~WinSocketSystem()
    
{
        WSACleanup();
    }


protected:
    WSADATA wsaData;
}
;

static WinSocketSystem g_winsocketsystem;


服務(wù)器端代碼:
class TCPServer
{
public:
    TCPServer()
        : mServerSocket(INVALID_SOCKET)
    
{
        
// 創(chuàng)建套接字
        mServerSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
        
if (mServerSocket == INVALID_SOCKET)
        
{
            std::cout 
<< "創(chuàng)建套接字失敗!" << std::endl;
            
return;
        }


        
// 填充服務(wù)器的IP和端口號
        mServerAddr.sin_family        = AF_INET;
        mServerAddr.sin_addr.s_addr    
= INADDR_ANY;
        mServerAddr.sin_port        
= htons((u_short)SERVER_PORT);

        
// 綁定IP和端口
        if ( ::bind(mServerSocket, (sockaddr*)&mServerAddr, sizeof(mServerAddr)) == SOCKET_ERROR)
        
{
            std::cout 
<< "綁定IP和端口失敗!" << std::endl;
            
return;
        }


        
// 監(jiān)聽客戶端請求,最大同時連接數(shù)設(shè)置為10.
        if ( ::listen(mServerSocket, SOMAXCONN) == SOCKET_ERROR)
        
{
            std::cout 
<< "監(jiān)聽端口失敗!" << std::endl;
            
return;
        }


        std::cout 
<< "啟動TCP服務(wù)器成功!" << std::endl;
    }


    
~TCPServer()
    
{
        ::closesocket(mServerSocket);
        std::cout 
<< "關(guān)閉TCP服務(wù)器成功!" << std::endl;
    }


    
void run()
    
{
        
int nAcceptAddrLen = sizeof(mAcceptAddr);
        
for (;;)
        
{
            
// 以阻塞方式,等待接收客戶端連接
            mAcceptSocket = ::accept(mServerSocket, (struct sockaddr*)&mAcceptAddr, &nAcceptAddrLen);
            std::cout 
<< "接受客戶端IP:" << inet_ntoa(mAcceptAddr.sin_addr) << std::endl;

            
// 發(fā)送消息
            int ret = ::send(mAcceptSocket, SEND_STRING, (int)strlen(SEND_STRING), 0);
            
if (ret != 0)
            
{
                std::cout 
<< "發(fā)送消息成功!" << std::endl;
            }


            
// 關(guān)閉客戶端套接字
            ::closesocket(mAcceptSocket);
            std::cout 
<< "斷開客戶端端成功!" << std::endl;
        }

    }


private:
    SOCKET        mServerSocket;    
///< 服務(wù)器套接字句柄
    sockaddr_in    mServerAddr;    ///< 服務(wù)器地址

    SOCKET        mAcceptSocket;    ///< 接受的客戶端套接字句柄
    sockaddr_in    mAcceptAddr;    ///< 接收的客戶端地址
};


int _tmain(int argc, _TCHAR* argv[])
{
    TCPServer server;
    server.run();

    
return 0;
}


客戶端代碼:
class TCPClient
{
public:
    TCPClient()
    
{
        
// 創(chuàng)建套接字
        mServerSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
        
if (mServerSocket == INVALID_SOCKET)
        
{
            std::cout 
<< "創(chuàng)建套接字失敗!" << std::endl;
            
return;
        }


        
// 填充服務(wù)器的IP和端口號
        mServerAddr.sin_family        = AF_INET;
        mServerAddr.sin_addr.s_addr    
= inet_addr(SERVER_IP);
        mServerAddr.sin_port        
= htons((u_short)SERVER_PORT);

        
// 連接到服務(wù)器
        if ( ::connect(mServerSocket, (struct sockaddr*)&mServerAddr, sizeof(mServerAddr)))
        
{
            ::closesocket(mServerSocket);
            std::cout 
<< "連接服務(wù)器失敗!" << std::endl;
            
return;    
        }

    }


    
~TCPClient()
    
{
        ::closesocket(mServerSocket);
    }


    
void run()
    
{
        
int nRecvSize = 0;
        
char buff[BUFFER_SIZE];
        memset(buff, 
0sizeof(buff) );
        
while (nRecvSize = ::recv(mServerSocket, buff, BUFFER_SIZE, 0) )
        
{
            
if (mServerSocket == INVALID_SOCKET)
            
{                
                
break;
            }


            std::cout 
<< buff << std::endl;
        }


        std::cout 
<< "已經(jīng)和服務(wù)器斷開連接!" << std::endl;
    }


private:
    SOCKET        mServerSocket;    
///< 服務(wù)器套接字句柄
    sockaddr_in    mServerAddr;    ///< 服務(wù)器地址
};



int _tmain(int argc, _TCHAR* argv[])
{
    TCPClient client;
    client.run();

    system(
"pause");
    
return 0;
}



源代碼下載:
服務(wù)器端代碼: testTCPServer.rar
客戶端代碼: testTCPClient.rar

posted on 2010-06-10 21:57 楊粼波 閱讀(6388) 評論(4)  編輯 收藏 引用 所屬分類: 原創(chuàng)文章網(wǎng)絡(luò)編程

評論

# re: Windows 下的最簡單的TCP服務(wù)器客戶端 2010-06-10 23:45 EaiLFly

太謝謝了,我剛好要寫個TCP的課程設(shè)計,參考一下  回復(fù)  更多評論   

# re: Windows 下的最簡單的TCP服務(wù)器客戶端 2010-06-10 23:48 楊粼波

我這里還有一個Linux的簡單TCP服務(wù)器客戶端:
http://m.shnenglu.com/tx7do/articles/5966.html  回復(fù)  更多評論   

# re: Windows 下的最簡單的TCP服務(wù)器客戶端 2010-06-11 09:51 zuhd

發(fā)這個代碼?你想干嘛呢?最近很活躍啊  回復(fù)  更多評論   

# re: Windows 下的最簡單的TCP服務(wù)器客戶端[未登錄] 2010-06-11 19:43 楊粼波

我閑的發(fā)慌,哈哈哈.....  回復(fù)  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人精品影院| 国产精品a久久久久久| 欧美日韩天堂| 亚洲小少妇裸体bbw| 亚洲新中文字幕| 国产欧美大片| 久久精品在线观看| 欧美成人精品h版在线观看| 亚洲黄色免费电影| 日韩视频在线一区二区三区| 国产精品久久久久久久久久直播| 亚洲欧美另类国产| 久久久久久一区二区| 亚洲美女啪啪| 久久国产视频网站| 精品白丝av| 一区二区三区欧美亚洲| 国产亚洲精品一区二区| 99re亚洲国产精品| 在线观看亚洲视频啊啊啊啊| 亚洲精选大片| 亚洲精品乱码久久久久久| 亚洲女同同性videoxma| 亚洲午夜成aⅴ人片| 久久精品日产第一区二区| 亚洲精品影视| 欧美**字幕| 亚洲国产视频a| 欧美国产免费| 精品91免费| 久久久综合精品| 免费在线观看一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 一本色道久久| 一区二区三区免费观看| 欧美精品一线| 一区二区成人精品 | 91久久久亚洲精品| 亚洲三级观看| 欧美日韩高清不卡| 日韩视频免费观看高清在线视频 | 亚洲精品久久嫩草网站秘色| 亚洲国产精品999| 欧美成人免费网站| 亚洲精品免费一二三区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美va天堂| 亚洲第一福利视频| 欧美理论电影在线观看| 亚洲天天影视| 久久躁日日躁aaaaxxxx| 国产亚洲欧洲997久久综合| 欧美在线视频日韩| 日韩一级黄色大片| 久久爱www.| 亚洲毛片在线观看.| 国产精品普通话对白| 免费看黄裸体一级大秀欧美| 91久久在线视频| 久久久亚洲高清| 一区二区三区日韩精品| 狠色狠色综合久久| 欧美视频在线免费看| 欧美激情国产日韩精品一区18| 亚洲午夜免费视频| 欧美激情黄色片| 久久美女性网| 久久精品噜噜噜成人av农村| 中文久久精品| 99re66热这里只有精品3直播| 国产精品久久久久久久久久久久久 | 久久超碰97人人做人人爱| 亚洲美女视频网| 久久激情网站| 亚洲色图在线视频| 亚洲精品国产欧美| 亚洲国产天堂久久综合网| 亚洲国产欧美日韩精品| 欧美在线黄色| 久久人人爽国产| 欧美11—12娇小xxxx| 久久综合给合| 欧美激情二区三区| 亚洲精品黄网在线观看| 9久草视频在线视频精品| 夜夜嗨av一区二区三区网页| 在线亚洲免费视频| 久久九九热免费视频| 欧美一区二区三区另类 | 亚洲激情国产| 亚洲美女91| 欧美一二三区在线观看| 久久久噜噜噜久久人人看| 免费亚洲电影| 一区二区三区av| 久久久久久久999| 欧美视频日韩视频| 亚洲电影观看| 亚洲欧美成人一区二区在线电影 | 久久久久久久尹人综合网亚洲| 久久精品欧美日韩精品| 国产精品成人午夜| 国产专区综合网| 亚洲午夜电影| 亚洲高清在线观看| 性色一区二区三区| 欧美三级日本三级少妇99| 亚洲欧洲美洲综合色网| 久久精品国产一区二区三区免费看| 欧美激情一区三区| 麻豆9191精品国产| 国产一区二区三区黄| 欧美亚洲一区二区在线观看| 99精品视频免费| 欧美日韩国产综合新一区| 亚洲日本欧美在线| 欧美jizzhd精品欧美巨大免费| 亚洲女女女同性video| 国产精品每日更新在线播放网址| 一本一本a久久| 亚洲人成7777| 欧美性开放视频| 亚洲欧美视频在线| 午夜精品视频| 一区视频在线看| 亚洲国产精品悠悠久久琪琪| 麻豆精品传媒视频| 9久re热视频在线精品| 亚洲一区精品电影| 国产一区二区三区在线观看免费视频| 欧美在线视频日韩| 久久久免费av| 亚洲免费观看高清完整版在线观看熊 | 欧美高清日韩| 亚洲一区日韩| 久久综合久久久久88| 亚洲图片在线| 男女视频一区二区| 欧美一区二区三区精品电影| 性18欧美另类| 亚洲私拍自拍| 蜜臀久久99精品久久久画质超高清| 亚洲裸体俱乐部裸体舞表演av| 一区二区三区产品免费精品久久75| 国产欧美一区二区三区国产幕精品 | 美女尤物久久精品| 国产精品都在这里| 亚洲丰满在线| 狠狠色狠色综合曰曰| 中文日韩在线视频| 日韩亚洲欧美高清| 久久午夜精品| 欧美在线观看你懂的| 国产精品入口尤物| 夜夜嗨一区二区三区| 在线中文字幕不卡| 欧美日韩成人综合| 亚洲精品一二区| 亚洲精品一二| 欧美精品一区二区三| 亚洲黄色影院| 中文国产成人精品| 欧美日韩一区二区在线| 日韩视频―中文字幕| 99re8这里有精品热视频免费 | 91久久久久久久久久久久久| 精品动漫3d一区二区三区免费版| 一区二区三区精品视频在线观看| 亚洲电影在线| 欧美成年视频| 99在线|亚洲一区二区| aⅴ色国产欧美| 国产精品欧美久久久久无广告| 在线亚洲欧美| 久久久久高清| 亚洲黄色片网站| 国产精品久久久久久av福利软件| 午夜精品电影| 亚洲日本va在线观看| 在线视频精品| 激情综合在线| 国产精品一区视频| 久久亚洲视频| 亚洲欧美另类国产| 亚洲国产精品久久久久秋霞蜜臀| 亚洲精品乱码久久久久久久久| 国产精品xxxxx| 麻豆精品精品国产自在97香蕉| 中文无字幕一区二区三区| 久久精品中文字幕免费mv| 在线不卡免费欧美| 国产精品久久一卡二卡| 麻豆成人在线观看| 亚洲欧美日韩成人高清在线一区| 久久深夜福利| 久久久久久伊人| 久久精品道一区二区三区| 亚洲你懂的在线视频| 亚洲图片在线观看| 日韩视频专区|