sample.cpp
资源名称:winsock.rar [点击查看]
上传用户:whzytd4
上传日期:2022-08-01
资源大小:7346k
文件大小:1k
源码类别:
网络编程
开发平台:
Visual C++
- // sample.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include "winsock2.h"
- #pragma comment(lib, "WS2_32.lib")
- int main(int argc, char* argv[])
- {
- WSADATA wsd;
- SOCKET sServer;
- SOCKET sClient;
- sockaddr_in serAddr;
- int retVal;
- char buf[64];
- int nReadLen;
- if(WSAStartup(MAKEWORD(2, 2), &wsd) != 0)
- {
- printf("WSAStarup errorn");
- return -1;
- }
- sServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- if(sServer == INVALID_SOCKET)
- {
- printf("socker errorn");
- return -1;
- }
- serAddr.sin_family = AF_INET;
- serAddr.sin_addr.S_un.S_addr = INADDR_ANY;
- serAddr.sin_port = htons(5500);
- retVal = bind(sServer, (SOCKADDR *)&serAddr, sizeof(sockaddr_in));
- if(retVal == SOCKET_ERROR)
- {
- printf("bind errorn");
- return -1;
- }
- retVal = listen(sServer, 3);
- if(retVal == SOCKET_ERROR)
- {
- printf("listen errorn");
- return -1;
- }
- sockaddr_in addrClient;
- int addrClientLen = sizeof(addrClient);
- sClient = accept(sServer, (SOCKADDR *)&addrClient, &addrClientLen);
- if(sClient == INVALID_SOCKET)
- {
- printf("accept errorn");
- return -1;
- }
- ZeroMemory(buf, 64);
- nReadLen = recv(sClient, buf, 64, 0);
- if(nReadLen == SOCKET_ERROR)
- {
- printf("recv errorn");
- closesocket(sServer);
- closesocket(sClient);
- WSACleanup();
- return -1;
- }
- printf("%sn", buf);
- closesocket(sServer);
- closesocket(sClient);
- WSACleanup();
- }
English
