<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 服務器 server.cpp ```c++ #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WinSock2.h> #pragma comment(lib,"ws2_32.lib") int main(int argc, char * argv[]) { //創建套接字 WORD myVersionRequest; WSADATA wsaData; myVersionRequest = MAKEWORD(1,1); int err; err = WSAStartup(myVersionRequest, &wsaData); if (!err) { printf("已經打開套接字!\n"); } else { //進一步綁定套接字 printf("嵌套字未打開!"); return 0; } SOCKET serSocket = socket(AF_INET,SOCK_STREAM,0);//創建了可識別的套接字 //需要綁定的參數 SOCKADDR_IN addr; addr.sin_family = AF_INET;//ipv4 addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//INADDR_ANY表示任何IP addr.sin_port = htons(6000); bind(serSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR));//綁定完成 listen(serSocket,5);//其中第二個參數代表能夠接受的最多的連接數 //////////////// //開始監聽 /////////////// SOCKADDR_IN clientSocket; int len = sizeof(SOCKADDR); while (1) { //如果這里不是accept而是conection的話,就會不斷的監聽 SOCKET serConn = accept(serSocket,(SOCKADDR*)&clientSocket,&len); char sendBuf[100]; sprintf(sendBuf,"welcome %s to socket",inet_ntoa(clientSocket.sin_addr));//找到對應ip并打印 send(serConn,sendBuf,strlen(sendBuf)+1,0); char receiveBuf[50];//接收 recv(serConn,receiveBuf,50,0); printf("%s\n",receiveBuf); closesocket(serConn);//關閉 } WSACleanup();//釋放資源 不能寫在循環里面 要不然會死循環 return 0; } ``` ## 客戶端 client.cpp ````` #include <WinSock2.h> #include <stdio.h> #pragma comment(lib,"ws2_32.lib") int main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD(1, 1); err = WSAStartup(wVersionRequested, &wsaData); if (err != 0) { return 0; } if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) { WSACleanup(); return 0; } SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(6000); connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR)); send(sockClient, "hello", strlen("hello") + 1, 0); char recvBuf[50]; [win32t網絡編程](socket網絡編程.md) recv(sockClient, recvBuf, 50, 0); printf("%s\n", recvBuf); closesocket(sockClient); WSACleanup(); return 0; } ````
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看