RenHao

Windows_TCP_socket_client

May 18th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.51 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 , const char* msg);
  11. void errorMessage(const char* msg);
  12.  
  13. int main()
  14. {
  15.     char recvBuf[BUF_SIZE] = {0};
  16.  
  17.  
  18.     // Initialize Winsock.
  19.     WSADATA wsaData;
  20.     int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
  21.     if ( iResult != NO_ERROR )
  22.     {
  23.         errorMessage("Error at WSAStartup()\n");
  24.     }
  25.  
  26.     struct sockaddr_in serverAddr = {0};;
  27.     serverAddr.sin_family = AF_INET;
  28.     serverAddr.sin_addr.s_addr = inet_addr(SERVER_ADDR);
  29.     serverAddr.sin_port = htons(PORT);
  30.  
  31.  
  32.     int clientFD = socket(AF_INET , SOCK_STREAM , 0);
  33.     testResult(clientFD , "Creating socket error\n");
  34.  
  35.     printf("Connect to server.. \n\r");
  36.     iResult = connect(clientFD , (struct sockaddr *)&serverAddr , sizeof(serverAddr));
  37.     testResult(iResult , "Connection error\n");
  38.  
  39.     printf("Send data to server.. \n\r");
  40.     iResult = send(clientFD , "hello" , strlen("hello") , 0);
  41.     testResult(iResult , "Send data error\n");
  42.  
  43.     printf("Receive from server.. \n\r");
  44.     iResult = recv(clientFD , recvBuf , sizeof(recvBuf) , 0);
  45.     testResult(iResult , "Receive error\n");
  46.  
  47.     closesocket(clientFD);
  48.  
  49.  
  50.     return 0;
  51. }
  52.  
  53. void testResult(int result , const char* msg)
  54. {
  55.     if(result == -1)
  56.         errorMessage(msg);
  57. }
  58.  
  59. void errorMessage(const char* msg)
  60. {
  61.     perror(msg);
  62.     system("Pause");
  63.     exit(EXIT_FAILURE);
  64. }
Advertisement
Add Comment
Please, Sign In to add comment