windows網路編程入門

來源:互聯網
上載者:User

標籤:

windows Sockets 的版本:

標頭檔:WINSOCK.h

庫檔案:wsock32.lib

動態困:WINSOCK.DLL


標頭檔:WINSOCK2.h

庫檔案:WS2_32.lib

動態困:WS2_32.DLL


服務端:

WSADATAwsd;//WSADATA變數SOCKETsServer;//伺服器通訊端SOCKETsClient;//用戶端通訊端SOCKADDR_INaddrServ;;//伺服器位址charbuf[ BUF_SIZE];//接收資料緩衝區intretVal;//傳回值//初始化通訊端動態庫if (WSAStartup(MAKEWORD(2,2),&wsd) != 0) {printf("WSAStartup Failed!!");AfxMessageBox("WSAStartup Failed");return 1;}//建立通訊端sServer = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if (INVALID_SOCKET == sServer) {printf("socket failed!\n");AfxMessageBox("socket failed!");WSACleanup();//釋放通訊端return -1;}//下一步  綁定通訊端//addrServ.sin_family = AF_INET;addrServ.sin_port = htons(4999);addrServ.sin_addr.s_addr = INADDR_ANY;//綁定通訊端retVal = bind(sServer,(LPSOCKADDR)&addrServ,sizeof(SOCKADDR_IN));if (SOCKET_ERROR == retVal) {AfxMessageBox("bind failed!");closesocket(sServer); //關閉通訊端WSACleanup();//釋放通訊端資源return -1;}//開始監聽retVal = listen(sServer,1);if (SOCKET_ERROR == retVal) {AfxMessageBox("listen failed!");closesocket(sServer);WSACleanup();return -1;}//設定伺服器為監聽狀態,調用accept()函數等待用戶端的串連。該函數處於阻塞狀態,直到接受//了一個用戶端請求、當該函數返回的時候,建立一個通訊端,同時返回該用戶端的地址。如果調用//失敗,則關閉sockaddr_in   addrClient;int addrClientlen = sizeof(addrClient);sClient = accept(sServer,(sockaddr FAR*)&addrClient, &addrClientlen);if (INVALID_SOCKET == sClient){AfxMessageBox("accept failed!");closesocket(sServer);WSACleanup();return -1;}//接受並顯示資料ZeroMemory(buf,BUF_SIZE);retVal = recv(sClient,buf,BUF_SIZE,0);if (SOCKET_ERROR == retVal){AfxMessageBox("recv Failed");closesocket(sServer);closesocket(sClient);WSACleanup();return -1;}CString str;str.Format("%s",buf);//AfxMessageBox(buf);m_Recv2.SetWindowText(str);closesocket(sServer);//關閉通訊端closesocket(sClient);//關閉通訊端WSACleanup();//釋放通訊端資源;

用戶端:

WSADATAwsd;//WSADATA變數SOCKETsHost;//伺服器通訊端SOCKADDR_INservAddr;//伺服器位址charbuf[BUF_SZIE];//接收資料緩衝區intretVal;//傳回值//初始化套結字動態庫if (WSAStartup(MAKEWORD(2,2), &wsd) != 0){printf("WSAStartup failed!\n");return -1;}//建立通訊端sHost = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if(INVALID_SOCKET == sHost){printf("socket failed!\n");WSACleanup();//釋放通訊端資源return  -1;}//設定伺服器位址servAddr.sin_family =AF_INET;servAddr.sin_addr.s_addr = inet_addr("127.0.0.1");servAddr.sin_port = htons((short)4999);intnServAddlen  = sizeof(servAddr);//串連伺服器retVal=connect(sHost,(LPSOCKADDR)&servAddr, sizeof(servAddr));if(SOCKET_ERROR == retVal){printf("connect failed!\n");closesocket(sHost);//關閉通訊端WSACleanup();//釋放通訊端資源return -1;}//向伺服器發送資料ZeroMemory(buf, BUF_SZIE);strcpy(buf, "MyTCP");retVal = send(sHost, buf, strlen(buf), 0);if (SOCKET_ERROR == retVal){printf("send failed!\n");closesocket(sHost);//關閉通訊端WSACleanup();//釋放通訊端資源return -1;}//退出closesocket(sHost);//關閉通訊端WSACleanup();//釋放通訊端資源return 0;



windows網路編程入門

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.