-
Notifications
You must be signed in to change notification settings - Fork 1
/
Utils.h
65 lines (52 loc) · 1.94 KB
/
Utils.h
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
// ***********************************************************************
// Filename : Utils.h
// Author : lizhenghn@gmail.com
// Created : 2015-05-14
// Description : socket相关api封装
//
// Last Modified By : LIZHENG
// Last Modified On : 2015-05-14
//
// Copyright (c) lizhenghn@gmail.com. All rights reserved.
// ***********************************************************************
#ifndef ZL_NET_UTILS_H
#define ZL_NET_UTILS_H
#include <inttypes.h>
#include <stdint.h>
#include <arpa/inet.h>
typedef int SocketFd;
typedef int TimerFd;
typedef int EventFd;
typedef int SignalFd;
namespace zl
{
namespace net
{
// socket util
SocketFd createSocket();
int bind(SocketFd fd, const struct sockaddr_in& addr);
int bind(SocketFd fd, const char *ip, short port);
int listen(SocketFd fd, int backlog = 31);
SocketFd createSocketAndListen(const char *ip, short port, int backlog = 31);
int accept(SocketFd fd, struct sockaddr_in *addr);
int connect(SocketFd fd, const struct sockaddr_in& addr);
int connect(SocketFd fd, const char *ip, short port);
ssize_t read(SocketFd fd, void *buf, size_t count);
ssize_t readv(SocketFd fd, const struct iovec *iov, int iovcount);
ssize_t write(SocketFd fd, const void *buf, size_t count);
void closeSocket(SocketFd fd);
void shutdownWrite(SocketFd fd);
int setNonBlocking(SocketFd fd, bool nonBlocking = true);
int setNoDelay(SocketFd fd, bool noDelay = true);
int setReuseAddr(SocketFd fd, bool flag = true);
int setKeepAlive(SocketFd fd, bool alive = true);
void getSockAddr(const char* ip, uint16_t port, struct sockaddr_in* addr);
struct sockaddr_in getLocalAddr(SocketFd sockfd);
struct sockaddr_in getPeerAddr(SocketFd sockfd);
int getSocketError(SocketFd sockfd);
// timer fd
// signal fd
// event fd
}
}
#endif /* ZL_NET_UTILS_H */