Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. // This UDP Server will take command argument as port number, and
  2. // when a clients datagram comes in, the server displays this message
  3. // with clients ip address, and the server bounces back the message
  4. // with servers name
  5. #pragma comment(lib, "ws2_32.lib")
  6. #include <WinSock2.h>
  7. #include <stdio.h>
  8.  
  9.  
  10. int main(int argc, char** argv) {
  11. if (argc != 2) {
  12. printf("Usage: %s [port number]\n", argv[0]);
  13. return 1;
  14. }
  15. WSADATA wsa;
  16. int ret = WSAStartup(MAKEWORD(2, 2), &wsa);
  17. if (ret) {
  18. printf("WinSock API is not ready!\n");
  19. return 1;
  20. }
  21. printf("WinSock API is ready!\n");
  22. // we now can use socket functions
  23. SOCKET serv = socket(AF_INET, SOCK_DGRAM, 0);
  24. if (serv == INVALID_SOCKET) {
  25. printf("Socket cannot be created\n");
  26. return 1;
  27. }
  28. printf("Socket is ready!\n");
  29. SOCKADDR_IN myaddr;
  30. myaddr.sin_family = AF_INET;
  31. myaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  32. myaddr.sin_port = htons(atoi(argv[1]));
  33. ret = bind(serv, (SOCKADDR *)&myaddr, sizeof(myaddr));
  34. if (ret == SOCKET_ERROR) {
  35. printf("bind is FAILED\n");
  36. return 1;
  37. }
  38. printf("Bind is OK\n");
  39. while (1);
  40. WSACleanup();
  41. return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement