implemented UDPv4 socket class
Stefan Schuermans authored 12 years ago
|
1) /* Blinker
2) Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3) Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4) a blinkenarea.org project */
5)
6) #include <fcntl.h>
7) #include <netinet/in.h>
8) #include <string>
9) #include <sys/socket.h>
10) #include <sys/types.h>
11) #include <unistd.h>
12)
13) #include "Io.h"
14) #include "Udp4Addr.h"
15) #include "Udp4Sock.h"
16)
17) namespace Blinker {
18)
19) /// constructor
20) Udp4Sock::Udp4Sock()
21) {
22) int flags, opt;
23)
24) // create socket
25) m_fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
26) if (m_fd == -1)
27) return;
28)
29) // switch to nonblocking mode
30) flags = fcntl(m_fd, F_GETFL);
31) if (flags == -1 || fcntl(m_fd, F_SETFL, flags | O_NONBLOCK) != 0) {
32) close(m_fd);
33) m_fd = -1;
34) return;
35) }
36)
37) // enable address re-use
|