piffy icon

UDP Client (C++/Win)

piffy | PRO | 08/08/15 12:53:35 PM UTC | 0 ⭐ | 10784 👁️ | Never ⏰ | []
C++ (WinAPI) |

0 B

|

None

|

0 👍

/

0 👎

/**Copyright (c) 2015 Mathias Buus, Marcello Missiroli & Remy Lebeau  **/ 
#include <stdio.h> 
#include <stdlib.h> 
#include <winsock.h> 
 
#define BUFFER_SIZE 1024 
 
void on_error(char *s, int *errCode = NULL) 
{ 
    int err = (errCode) ? *errCode : WSAGetLastError(); 
    fprintf(stderr, "%s: %d\n", s, err); 
    fflush(stderr); 
    WSACleanup(); 
    exit(1); 
} 
 
int main(int argc, char *argv[]) 
{ 
    WSADATA wsadata; 
    
  int sock, port=6666, nBytes,err; 
  char buffer[1024],indirizzo[16]="127.0.0.1"; 
  struct sockaddr_in serverAddr; 
  int addr_size; 
 
   /** Controllo linea di comando **/ 
  if (argc != 3 && argc !=1 ) { 
    perror("Uso: ./udp_client [IP] [porta]\n"); 
        exit(1); 
   } 
 
  if (argc == 3) { 
    strcpy(indirizzo,argv[1]); 
    port = atoi(argv[2]); 
    } 
   
    /** Inizializzazione Winsock **/ 
    err = WSAStartup(MAKEWORD(2,2), &wsadata); 
    if (err != 0) 
        on_error("Errore in WSAStartup", &err); 
 
 
  /** Crea socket **/ 
  sock = socket(PF_INET, SOCK_DGRAM, 0); 
 
  /** Configurazione dati indirizzo **/ 
  serverAddr.sin_family = AF_INET; 
  serverAddr.sin_port = htons(port); 
  serverAddr.sin_addr.s_addr = inet_addr(indirizzo); 
  memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero);  
  addr_size = sizeof serverAddr; 
 
  printf("Scrivi la frase da inviare al server: "); 
  fgets(buffer,1024,stdin); 
  printf("Hai scritto: %s",buffer); 
 
  nBytes = strlen(buffer) + 1; 
    
  /** Invia messaggio **/ 
  sendto(sock,buffer,nBytes,0,(struct sockaddr *)&serverAddr,addr_size); 
 
 
    WSACleanup(); 
    closesocket(sock); 
    return 0; 
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎