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
|
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
/* http://delahaye.emmanuel.free.fr/clib/ */
#include "psock/inc/psock.h"
#define port 1234
int main_ (void)
{
FILE *fichier;
char buffer[1024];
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 la connexion */
/* Initialisation */
SOCKADDR_IN sin = { 0 };
sin.sin_addr.s_addr = inet_addr ("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons (port);
/*ouvrire le fichier out.ts */
/* rb = lecture en mode byte */
fichier = fopen ("out.ts", "rb");
if (fichier == NULL)
{
printf ("erreur lors de l'ouverture du fichier out.ts\n");
exit (1);
}
int n;
while ((n = fread (buffer, 1, sizeof buffer, fichier)) > 0)
{
/* 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, n, 0, (struct sockaddr *) &sin, sizeof (sin));
}
fclose (fichier);
printf ("Fermeture de la socket...\n");
sock_err = closesocket (sock);
printf ("Fermeture du serveur terminee\n");
return 0;
}
int main (void)
{
#if defined (WIN32)
WSADATA wsa_data;
WSAStartup (MAKEWORD (2, 2), &wsa_data);
#endif
main_ ();
#if defined (WIN32)
WSACleanup ();
#endif
return 0;
}
/* 7 comments processed by CMT2 1.0 (c) ED 2007 */ |
Partager