-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathudp.c
95 lines (78 loc) · 1.96 KB
/
udp.c
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
85
86
87
88
89
90
91
92
93
94
95
/*
* SOCKLAB - "laboratoire" d'etude des sockets internet - ENSIMAG - Juillet 93
*
* udp.c: commandes en mode UDP
*
* sous Licence CeCILL V2, voir le fichier Licence_CeCILL_V2-fr.txt
*/
#include "socklab.h"
/* Creation d'une socket udp en ipv4
*=======================================================================
*
*/
int UDP_socket(argc, argv)
int argc;
char *argv[];
{
static char *socket_argv[] = { "socket", "udp", 0 };
static char *bind_argv[] = { "bind", ".", "*", "0", 0 };
static char *close_argv[] = { "close", ".", 0 };
int so;
int port;
so = socket_call(2, socket_argv);
if (so == -1)
return (-1);
port = bind_call(4, bind_argv);
if (port == -1) {
close_call(2, close_argv);
return (-1);
}
printf("UDP socket created: Id=%d, port=%d\n", sock[so], port);
return (0);
}
/* Creation d'une socket udp en ipv4
*=======================================================================
*
*/
int UDP_socket6(argc, argv)
int argc;
char *argv[];
{
static char *socket_argv[] = { "socket6", "udp", 0 };
static char *bind_argv[] = { "bind", ".", "*", "0", 0 };
static char *close_argv[] = { "close", ".", 0 };
int so;
int port;
so = socket6_call(2, socket_argv);
if (so == -1)
return (-1);
port = bind_call(4, bind_argv);
if (port == -1) {
close_call(2, close_argv);
return (-1);
}
printf("UDP socket created: Id=%d, port=%d\n", sock[so], port);
return (0);
}
/* reception d'un message
*=======================================================================
*
*/
int UDP_recvfrom(argc, argv)
int argc;
char *argv[];
{
argc = remove_flags(argc, argv);
return (recvfrom_call(argc, argv));
}
/* envoi d'un message
*=======================================================================
*
*/
int UDP_sendto(argc, argv)
int argc;
char *argv[];
{
argc = remove_flags(argc, argv);
return (sendto_call(argc, argv));
}