/**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
0 B
|👍
/👎
0 B
|👍
/👎