欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
WinSocket的單線(xiàn)程Server的實(shí)現

WinSocket的單線(xiàn)程Server的實(shí)現

時(shí)間:2011-6-2來(lái)源:yang 作者: peng點(diǎn)擊: 161次
#include <iostream>
#include "winsock2.h"
#include <windows.h>
 
using namespace std;
 
int main(){
     //啟動(dòng)WS2_32.dll
     WSADATA wsaData;
     int nResult = WSAStartup(MAKEWORD(2,2),&wsaData);
     if(nResult != NO_ERROR){
         cout << "Error at WSAStartup" << endl;
         return 1;
     }
 
     //創(chuàng )建一個(gè)socket
     SOCKET m_socket;
     m_socket = socket(AF_INET, //協(xié)議族
         SOCK_STREAM,           //SOCKET類(lèi)型
         IPPROTO_TCP);          //此socket使用的協(xié)議
     if(m_socket == INVALID_SOCKET){
         cout << "Error at socket " << WSAGetLastError() << endl;
         WSACleanup();
         return 1;
     }
 
     //Bind a socket
     sockaddr_in service;
     service.sin_family = AF_INET;//協(xié)議族
     service.sin_addr.s_addr = inet_addr("127.0.0.1");//IP地址
     service.sin_port = htons(27002);               //端口號
 
     //將socket與指定的地址綁定
     if(bind(m_socket,(SOCKADDR*)&service,sizeof(service)) == SOCKET_ERROR){
         cout << "Error at bind " << endl;
         closesocket(m_socket);
         return 1;
     }
 
     //監聽(tīng)socket
     if(listen(m_socket,20) == SOCKET_ERROR){
         cout << "Error on listen" << endl;
          return 1;
     }
 
     //接受一個(gè)socket連接
     SOCKET AcceptSocket;
     cout << "Waiting for client to connect" << endl;
     while (1) {
         AcceptSocket = SOCKET_ERROR;
         while (AcceptSocket == SOCKET_ERROR) {
              AcceptSocket = accept(m_socket,NULL,NULL);
         }
 
         cout << "client connected!" << endl;
         m_socket = AcceptSocket;
         break;
     }
 
     int nSendBytes = 0;
     int nRecvBytes = 0;
     char pSendBytes[32] = "Server:Send data";
     char pRecvBytes[32] = "";
 
     //從socket接收數據.
     nRecvBytes = recv(m_socket,pRecvBytes,32,0);
     cout << "Num of receive :" << nRecvBytes << endl;
     cout << pRecvBytes << endl;
 
     //向socket發(fā)送數據。
     nSendBytes = send(m_socket,pSendBytes,32,0);
     if (nSendBytes == SOCKET_ERROR) {
         int nErr = WSAGetLastError();
         WSAEACCES;
         cout << nErr << endl;
     }else
        cout <<"Num of send : " << nSendBytes << endl;
     //清除WS2_32.dll
     Sleep(5000);
     WSACleanup();
   
     return 0;
}
 
.
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Windows Socket 異步編程(非阻塞)
Boost socket 同步編程示例(服務(wù)端,客戶(hù)端)
178 f0602
【C++】用C++編寫(xiě)最簡(jiǎn)單的計算器簡(jiǎn)單完整版
Select模型 詳解
一元二次方程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久