RenHao

Windows_UDP_socket_client

May 19th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #include <winsock2.h>
  5.  
  6. #define SERVER_ADDR "192.168.111.155"
  7. #define PORT 7
  8. #define BUF_SIZE 1024
  9.  
  10. void testResult(int result , int checkStatus , const char* msg);
  11. void errorMessage(const char* msg);
  12.  
  13. int main()
  14. {
  15.  
  16.     /* UDP test */
  17.  
  18.     char recvBuf[BUF_SIZE] = {0};
  19.  
  20.  
  21.     // Initialize Winsock.
  22.     WSADATA wsaData;
  23.     int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
  24.     if ( iResult != NO_ERROR )
  25.     {
  26.         errorMessage("Error at WSAStartup()\n");
  27.     }
  28.  
  29.     struct sockaddr_in serverAddr = {0};;
  30.     serverAddr.sin_family = AF_INET;
  31.     serverAddr.sin_addr.s_addr = inet_addr(SERVER_ADDR);
  32.     serverAddr.sin_port = htons(PORT);
  33.  
  34.  
  35.     int clientFD = socket(AF_INET , SOCK_DGRAM , IPPROTO_UDP);
  36.     testResult(clientFD , SOCKET_ERROR , "Creating socket error\n");
  37.  
  38.     /*
  39.     printf("Connect to server.. \n\r");
  40.     iResult = connect(clientFD , (struct sockaddr *)&serverAddr , sizeof(serverAddr));
  41.     testResult(iResult , SOCKET_ERROR , "Connection error\n");
  42.     */
  43.  
  44.     printf("Send data to server.. \n\r");
  45.     iResult = sendto(clientFD , "hello" , strlen("hello") , 0 , (struct sockaddr *)&serverAddr , sizeof(serverAddr));
  46.     testResult(iResult , SOCKET_ERROR , "Send data error\n");
  47.  
  48.     printf("Receive from server.. \n\r");
  49.     iResult = recvfrom(clientFD , recvBuf , sizeof(recvBuf) , 0 , (struct sockaddr *)&serverAddr , sizeof(serverAddr));
  50.     testResult(iResult , SOCKET_ERROR , "Receive error\n");
  51.  
  52.     closesocket(clientFD);
  53.  
  54.  
  55.     return 0;
  56. }
  57.  
  58. void testResult(int result , int checkStatus , const char* msg)
  59. {
  60.     if(result == checkStatus)
  61.         errorMessage(msg);
  62. }
  63.  
  64. void errorMessage(const char* msg)
  65. {
  66.     printf("Error code : %d , %s",WSAGetLastError(),msg);
  67.     system("Pause");
  68.     exit(EXIT_FAILURE);
  69. }
Advertisement
Add Comment
Please, Sign In to add comment