Blame


1 058b0118 2005-01-03 devnull .TH UDPREAD 3
2 058b0118 2005-01-03 devnull .SH NAME
3 058b0118 2005-01-03 devnull udpread, udpwrite \- read and write UDP packets
4 058b0118 2005-01-03 devnull .SH SYNOPSIS
5 058b0118 2005-01-03 devnull .B #include <u.h>
6 058b0118 2005-01-03 devnull .PP
7 058b0118 2005-01-03 devnull .B #include <libc.h>
8 058b0118 2005-01-03 devnull .PP
9 058b0118 2005-01-03 devnull .B #include <ip.h>
10 058b0118 2005-01-03 devnull .PP
11 058b0118 2005-01-03 devnull .B
12 058b0118 2005-01-03 devnull .nf
13 058b0118 2005-01-03 devnull .ta +4n +8n
14 058b0118 2005-01-03 devnull typedef struct Udphdr Udphdr;
15 058b0118 2005-01-03 devnull struct Udphdr
16 058b0118 2005-01-03 devnull {
17 058b0118 2005-01-03 devnull uchar raddr[IPaddrlen]; /* remote address and port */
18 058b0118 2005-01-03 devnull uchar laddr[IPaddrlen]; /* local address and port */
19 058b0118 2005-01-03 devnull uchar rport[2];
20 058b0118 2005-01-03 devnull uchar lport[2];
21 058b0118 2005-01-03 devnull };
22 058b0118 2005-01-03 devnull .PP
23 058b0118 2005-01-03 devnull .B
24 058b0118 2005-01-03 devnull long udpread(int fd, Udphdr *hdr, void *data, long n)
25 058b0118 2005-01-03 devnull .PP
26 058b0118 2005-01-03 devnull .B
27 058b0118 2005-01-03 devnull long udpwrite(int fd, Udphdr *hdr, void *data, long n)
28 058b0118 2005-01-03 devnull .SH DESCRIPTION
29 058b0118 2005-01-03 devnull .I Udpread
30 058b0118 2005-01-03 devnull and
31 058b0118 2005-01-03 devnull .I udpwrite
32 058b0118 2005-01-03 devnull read and write UDP packets from the UDP network connection
33 058b0118 2005-01-03 devnull established on file descriptor
34 058b0118 2005-01-03 devnull .IR fd .
35 058b0118 2005-01-03 devnull .PP
36 058b0118 2005-01-03 devnull .I Udpread
37 058b0118 2005-01-03 devnull reads at most
38 058b0118 2005-01-03 devnull .I n
39 058b0118 2005-01-03 devnull bytes of packet body into
40 058b0118 2005-01-03 devnull .I data ,
41 058b0118 2005-01-03 devnull stores the header in
42 058b0118 2005-01-03 devnull .IR hdr ,
43 058b0118 2005-01-03 devnull and returns the number of bytes stored in
44 058b0118 2005-01-03 devnull .IR data .
45 058b0118 2005-01-03 devnull .PP
46 058b0118 2005-01-03 devnull .I Udpwrite
47 058b0118 2005-01-03 devnull writes the
48 058b0118 2005-01-03 devnull .I n
49 058b0118 2005-01-03 devnull bytes stored in
50 058b0118 2005-01-03 devnull .I data
51 058b0118 2005-01-03 devnull in a UDP packet with header
52 058b0118 2005-01-03 devnull .IR hdr .
53 058b0118 2005-01-03 devnull .PP
54 058b0118 2005-01-03 devnull Note that the
55 058b0118 2005-01-03 devnull .B Udphdr
56 058b0118 2005-01-03 devnull frames the addresses as local and remote
57 058b0118 2005-01-03 devnull instead of source and destination.
58 058b0118 2005-01-03 devnull Thus the
59 058b0118 2005-01-03 devnull .I hdr
60 058b0118 2005-01-03 devnull filled in for a packet read by
61 058b0118 2005-01-03 devnull .I udpread
62 058b0118 2005-01-03 devnull can be used unchanged in
63 058b0118 2005-01-03 devnull .I udpwrite
64 058b0118 2005-01-03 devnull to send a response back to the sender of the original packet.
65 058b0118 2005-01-03 devnull .SH SOURCE
66 c3674de4 2005-01-11 devnull .B \*9/src/lib9/udp.c
67 058b0118 2005-01-03 devnull .SH SEE ALSO
68 d32deab1 2020-08-16 rsc .MR ip (3)