signal:
<signal.h>
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen);
int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
int listen(int sockfd, int backlog);
struct sockaddr_in
{
sa_family_t sin_family; //地址族(address family)
uint16_t sin_port; //16为端口号
struct in_addr sin_addr; //32位IP地址
char sin_zero[8] //不使用
}
struct in_addr
{
In_addr_t s_addr;
}
有些系统包含的头文件是 <netinet/in.h> 而不是 <arpa/inet.h>. [1]
uint32_t htonl(uint32_t hostlong);
字符串有效则将字符串转换为32位二进制网络字节序的IPV4地址
in_addr_t inet_addr(const char* strptr);
主机字转换成网络字节序
htons
#include <sys/types.h>
#include <unistd.h>
fd_set rfds; /*读文件集*/
void FD_CLR(int fd, fd_set *set);
int FD_ISSET(int fd, fd_set *set);
void FD_SET(int fd, fd_set *set);
void FD_ZERO(fd_set *set);
int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout);
#include <pthread.h>
pthread_mutex_t
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr)
int pthread_mutex_destroy(pthread_mutex_t *mutex)
int pthread_mutex_lock(pthread_mutex_t *mutex)
int pthread_mutex_unlock(pthread_mutex_t *mutex)
int pthread_mutex_trylock(pthread_mutex_t *mutex)
int strncasecmp(const char *s1, const char *s2, size_t n);
int snprintf(char *str, size_t size, const char *format, ...);
#include <unistd.h>