Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement