• <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>
            隨筆 - 64, 文章 - 11, 評論 - 12, 引用 - 0
            數(shù)據(jù)加載中……

            winsock 程序

            服務(wù)端:
            #include <stdlib.h>
            #include <stdio.h>
            #include <WINSOCK2.H>
            #include <WS2TCPIP.H>
            #include <windows.h>


            //////////////////////////////////////////////////////////////////////////

            #define DEFAULT_BUFLEN 512
            #define DEFAULT_PORT "27015"

            //////////////////////////////////////////////////////////////////////////

            int  main()
            {
             WSADATA wsaData;
             SOCKET listenSocket = INVALID_SOCKET;
             SOCKET clientSocket = INVALID_SOCKET;
             char recvBuf[DEFAULT_BUFLEN];
             int iResult,iSendResult;
             int recvBuflen = DEFAULT_BUFLEN;

             iResult = WSAStartup(MAKEWORD(2,0),&wsaData);
             if(iResult)
             {
              printf("WSASTATUP failed!\n");
              return 1;
             }
             
             listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
             if(listenSocket == INVALID_SOCKET)
             {
              printf("socket failed:%ld\n", WSAGetLastError());
              WSACleanup();
              return 1;
             }
             
             
             sockaddr_in saServer;
             saServer.sin_family = AF_INET;
             saServer.sin_addr.s_addr = inet_addr("127.0.0.1");
             saServer.sin_port = htons(5150);

             iResult = bind(listenSocket,(sockaddr *)&saServer, sizeof(saServer));
             if(iResult == SOCKET_ERROR)
             {
              printf("bind failed!");
              closesocket(listenSocket);
              WSACleanup();
              return 1;
             }
             iResult = listen(listenSocket, SOMAXCONN);
             if(iResult == SOCKET_ERROR)
             {
              printf("LISTEN failed!");
              closesocket(listenSocket);
              WSACleanup();
              return 1;
             }
             printf("Wait client connect");
             clientSocket = accept(listenSocket, NULL, NULL);
             if(clientSocket == INVALID_SOCKET)
             {
              printf("accept failed!");
              closesocket(listenSocket);
              WSACleanup();
              return 1;
             }
             closesocket(listenSocket);
             printf("Now wait the data arrive...\n");
             do
             {
              iResult = recv(clientSocket, recvBuf, recvBuflen, 0);
              if(iResult > 0)
              {
               printf("Bytes received:%d\n",iResult);
               iSendResult = send(clientSocket, recvBuf, iResult, 0);
               if(iSendResult == SOCKET_ERROR)
               {
                printf("send failed");
                closesocket(clientSocket);
                WSACleanup();
                return 1;
               }
               else if (iResult == 0)
               {
                printf("Connect closed!");
               }
               else
               {
                printf("recv failed");
                closesocket(clientSocket);
                WSACleanup();
                return 1;
               }
              }
             } while(iResult > 0);

             iResult = shutdown(clientSocket, SD_SEND);
             if(iResult == SOCKET_ERROR)
             {
              printf("shut dowm failed!");
              closesocket(clientSocket);
              WSACleanup();
              return 1;
             }
             closesocket(clientSocket);
             WSACleanup();
             getchar();
             return 0;
            }

            //客戶端
            #include <stdlib.h>
            #include <stdio.h>
            #include <WINSOCK2.H>
            #include <WS2TCPIP.H>
            #include <windows.h>

            //////////////////////////////////////////////////////////////////////////

             

            //////////////////////////////////////////////////////////////////////////

            #define DEFAULT_BUFLEN 512
            #define DEFAULT_PORT "27015"

            //////////////////////////////////////////////////////////////////////////

            int main()
            {
             WSADATA wsaData;
             SOCKET connectSocket = INVALID_SOCKET;
             char *sendBuf = "This is a test";
             char recvBuf[DEFAULT_BUFLEN];
             int iResult;
             int recvBufLen = DEFAULT_BUFLEN;
            //  if(argc != 2)
            //  {
            //   printf("useage:%s server -name\n",argv[0]);
            //   return 1;
            //  }
             iResult = WSAStartup(MAKEWORD(2,0),&wsaData);
             if(iResult)
             {
              printf("WSASTATUP FAILED.");
              return 1;
             }
             sockaddr_in addr;
             addr.sin_family = AF_INET;
             addr.sin_port = htons(5150);
             addr.sin_addr.s_addr = inet_addr("127.0.0.1");
             connectSocket =  socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
             if(connectSocket == INVALID_SOCKET)
             {
              printf("Error at socket!");
              WSACleanup();
              return 1;
             }
             iResult = connect(connectSocket, (sockaddr *)&addr, sizeof(addr));
             if(iResult == SOCKET_ERROR)
             {
              printf("Connect failed!");
              WSACleanup();
              return 1;
             }

             iResult = send(connectSocket, sendBuf, (int)strlen(sendBuf), 0);
             if(iResult == SOCKET_ERROR)
             {
              printf("Send failed");
              closesocket(connectSocket);
              WSACleanup();
              return 1;
             }
             printf("Bytes send.");
             iResult = shutdown(connectSocket, SD_SEND);
             if(iResult == SOCKET_ERROR)
             {
              printf("shut down failed");
              closesocket(connectSocket);
              WSACleanup();
              return 1;
             }
             do
             {
              iResult = recv(connectSocket, recvBuf, recvBufLen, 0);
              if(iResult > 0)
              {
               printf("Bytes received:%d\n",iResult);
              }
              else if(iResult == 0)
              {
               printf("connect closed");
              }
              else
              {
               printf("Recv failed");
              }
             } while(iResult > 0);
             closesocket(connectSocket);
             WSACleanup();
             return 0;
            }
            注意要加入鏈接庫WS2_32.lib

            posted on 2008-06-10 23:19 Robertxiao 閱讀(326) 評論(0)  編輯 收藏 引用 所屬分類: Windows/MFC探索

            狠狠精品干练久久久无码中文字幕| 免费精品久久久久久中文字幕 | 亚洲国产精品无码久久久秋霞2| 欧美色综合久久久久久| 亚洲欧美日韩久久精品| 777午夜精品久久av蜜臀| 国产91色综合久久免费分享| 久久精品国产只有精品2020| 亚洲精品国产第一综合99久久| 久久精品久久久久观看99水蜜桃| 国内精品九九久久久精品| 色噜噜狠狠先锋影音久久| 久久久久久久综合狠狠综合| 久久精品一区二区| 中文字幕精品无码久久久久久3D日动漫 | 久久人人爽人爽人人爽av| 欧美熟妇另类久久久久久不卡| 成人精品一区二区久久| 久久www免费人成看片| 精品国产一区二区三区久久蜜臀| 亚洲精品乱码久久久久久按摩 | 久久―日本道色综合久久| 国产色综合久久无码有码| 精品久久国产一区二区三区香蕉 | 久久久久久无码国产精品中文字幕 | 亚洲精品tv久久久久久久久久| 久久99国产综合精品免费| 久久午夜夜伦鲁鲁片免费无码影视 | 久久免费香蕉视频| 91亚洲国产成人久久精品网址| 亚洲AV成人无码久久精品老人| 久久亚洲精品无码观看不卡| 国内精品久久久久久久coent| www.久久99| 久久精品国产精品青草| 久久99国产精品久久| AV无码久久久久不卡蜜桃| 91久久婷婷国产综合精品青草 | 久久综合综合久久狠狠狠97色88 | 亚洲级αV无码毛片久久精品| 亚洲AⅤ优女AV综合久久久|