sample.cpp
Upload User: whzytd4
Upload Date: 2022-08-01
Package Size: 7346k
Code Size: 1k
Category:

WinSock-NDIS

Development Platform:

Visual C++

  1. // sample.cpp : Defines the entry point for the console application.
  2. //
  3. #include "stdafx.h"
  4. #include "winsock2.h"
  5. #pragma comment(lib, "WS2_32.lib")
  6. int main(int argc, char* argv[])
  7. {
  8. WSADATA wsd;
  9. SOCKET sServer;
  10. SOCKET sClient;
  11. sockaddr_in serAddr;
  12. int retVal;
  13. char buf[64];
  14. int nReadLen;
  15. if(WSAStartup(MAKEWORD(2, 2), &wsd) != 0)
  16. {
  17. printf("WSAStarup errorn");
  18. return -1;
  19. }
  20. sServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  21. if(sServer == INVALID_SOCKET)
  22. {
  23. printf("socker errorn");
  24. return -1;
  25. }
  26. serAddr.sin_family = AF_INET;
  27. serAddr.sin_addr.S_un.S_addr = INADDR_ANY;
  28. serAddr.sin_port = htons(5500);
  29. retVal = bind(sServer, (SOCKADDR *)&serAddr, sizeof(sockaddr_in));
  30. if(retVal == SOCKET_ERROR)
  31. {
  32. printf("bind errorn");
  33. return -1;
  34. }
  35. retVal = listen(sServer, 3);
  36. if(retVal == SOCKET_ERROR)
  37. {
  38. printf("listen errorn");
  39. return -1;
  40. }
  41. sockaddr_in addrClient;
  42. int addrClientLen = sizeof(addrClient);
  43. sClient = accept(sServer, (SOCKADDR *)&addrClient, &addrClientLen);
  44. if(sClient == INVALID_SOCKET)
  45. {
  46. printf("accept errorn");
  47. return -1;
  48. }
  49. ZeroMemory(buf, 64);
  50. nReadLen = recv(sClient, buf, 64, 0);
  51. if(nReadLen == SOCKET_ERROR)
  52. {
  53. printf("recv errorn");
  54. closesocket(sServer);
  55. closesocket(sClient);
  56. WSACleanup();
  57. return -1;
  58. }
  59. printf("%sn", buf);
  60. closesocket(sServer);
  61. closesocket(sClient);
  62. WSACleanup();
  63. }