1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#define port 1234
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define closesocket(s) close (s)
#define port 1234
typedef int SOCKET;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr SOCKADDR;
int main (void){
FILE* fichier;
int len = 1024;
char buffer[len];
SOCKET sock;
int sock_err;
/*Creation de la socket*/
sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (sock == INVALID_SOCKET)
{
printf("socket()");
exit(1);
}
/*création de'l'interface*/
SOCKADDR_IN sin ;//Initialisation
//ZeroMemory(&sin, sizeof(sin));
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
if(sock_err = (bind (sock, (SOCKADDR *) &sin, sizeof sin) == SOCKET_ERROR))
{
printf("erreur lors de l'initialisation de la socket\n");
exit(1) ;// ce n'est pa la peine d'aller loin
}
memset(buffer, 0, len /*sizeof(buffer)*/); //Initialisation du buffer
if (buffer != NULL)
{
printf("buffer ok\n");
}
else {
printf("buffer NULL\n");
exit(0);
}
/*ouvrire le fichier out.ts*/
fichier = fopen ("out.ts", "rb"); //rb = lecture en mode byte
if (fichier == NULL)
{
printf("erreur lors de l'ouverture du fichier out.ts\n");
exit(1);
}
while (!feof(fichier)){
fread(buffer,1,len,fichier);
/* envoi d'un fragment du fichier pas tout le fichier*/
/* le fichier n'est envoyé en intégrité qu'à la fin de la boucle*/
sock_err = sendto(sock, buffer, strlen(buffer), 0,(struct sockaddr *) &sin, sizeof(sin));
memset(buffer, 0, len );
}
fclose(fichier);
printf ("Fermeture de la socket...\n" );
sock_err = closesocket(sock);
printf ("Fermeture du serveur terminee\n" );
} |
Partager