代码拉取完成,页面将自动刷新
同步操作将从 LOBMO/rtcp 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef __SOCKET_H_
#define __SOCKET_H_
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/tcp.h>
#include <netinet/in.h>
#include <sys/ioctl.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <pthread.h>
#define SOCKET_BLOCK 0
#define SOCKET_NOBLOCK 1
#define SOCK_LISTEN_NUM (10)
#define NO_WAIT 0
#define WAIT_FOREVER (-1)
#define true 1
#define false 0
#ifndef SAFE_CLOSE
#define SAFE_CLOSE(fd) do { \
if (-1 != fd) { \
close(fd); \
fd = -1; \
} \
} while (0)
#endif
#ifndef SAFE_FREE
#define SAFE_FREE(ptr) do { \
if (NULL == ptr) { \
free(ptr); \
ptr = NULL; \
} \
} while (0)
#endif
struct svr_process_t {
int cli_sock_fd;
struct sockaddr_in cliaddr;
};
#define RTCP_PRINTF(fmt,args...) do{printf("[%s %s] FILE:[%s]--[%s]LINE:[%d]:"fmt, __DATE__, __TIME__,__FILE__,__FUNCTION__,__LINE__,##args);}while(0);
typedef void* (*svr_process_thread)(void *);
/*
* @Function: svr_init
* @Description:服务端初始化函数
* @Input:arg port 端口 func 数据处理自定义回调函数,可在该函数实现收发 uWaitMsec 等待链接超时 isBlock 是否阻塞 SOCKET_BLOCK 阻塞 SOCKET_NOBLOCK 非阻塞
* @Output:NULL
* @Return:成功 0 失败 -1
*/
int svr_init(unsigned short int port, svr_process_thread func, int uWaitMsec);
/*
* @Function: socket_connect_wait
* @Description:close socket
* @Input:sHostName ip port 端口 uWaitMsec 超时时间 isBlock 是否阻塞 SOCKET_BLOCK 阻塞 SOCKET_NOBLOCK 非阻塞
* @Output:NULL
* @Return: NULL
*/
int socket_client_tcp_create_ipv4(const char *sHostName, int uPort, int uWaitMsec, int isBlock);
/*
* @Function: sys_socket_readn_wait
* @Description:从对端接受固定字节的数据
* @Input: sockfd:描述符 pbuf:接受缓冲区 buflen:接受字节长 uWaitMsec:超等等待时间
* @Output:NULL
* @Return:实际接收到数据的长度
*/
int sys_socket_readn_wait(int sockfd, void* pbuf, int buflen, unsigned int uWaitMsec);
/*
* @Function: sys_socket_read_wait
* @Description:尝试从对端接受数据
* @Input: sockfd:描述符 pbuf:接受缓冲区 buflen:缓冲区大小 uWaitMsec:超等等待时间
* @Output:NULL
* @Return:实际接收到数据的长度
*/
int sys_socket_read_wait(int sockfd, void* pbuf, int bufsize, unsigned int uWaitMsec);
/*
* @Function: sys_socket_writen
* @Description:向对端发送数据
* @Input: sockfd:描述符 pbuf:接受缓冲区 buflen:发送的字节数
* @Output:NULL
* @Return:实际发送的数据的长度
*/
int sys_socket_writen(int sockfd, void* pbuf, int buflen);
int setPthreadAttr(pthread_attr_t *attr, int priority, size_t stacksize, int bRealTime);
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。