⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sys_sock.c

📁 abstract rtos
💻 C
字号:
#include "syscfg.h"#ifdef __cplusplusextern "C"{#endif #define SOCK_ALIAS#include "asock.h"S32 sys_socket(S32 iFamily,S32 iType,S32 iProtocol){    SOCKET new_sock;        new_sock = socket( iFamily, iType, iProtocol );    return INVALID_SOCKET == new_sock ? -1:(S32)new_sock;}S32 sys_bind(S32 iFd, SOCKADDRIN_S *pSockAddr,S32 nAddrLen){    struct sockaddr addr;    addr.sa_family = pSockAddr->sin_chFamily;    aos_memcpy( addr.sa_data, &pSockAddr->sin_usPort, 14 );    return bind( (SOCKET)iFd, &addr, sizeof( struct sockaddr) );}S32 sys_listen(S32 iFd,S32 iBackLog){    return listen( (SOCKET)iFd, iBackLog );}S32 sys_accept(S32 iFd,  SOCKADDRIN_S *pAddr,S32 *pAddrLen){    SOCKET new_sock;    struct sockaddr addr;    new_sock = accept( (SOCKET)iFd, &addr, pAddrLen );    if( INVALID_SOCKET == new_sock )    {        return -1;    }    pAddr->sin_chLen    = 0;    pAddr->sin_chFamily = (U8)addr.sa_family;    aos_memcpy( &pAddr->sin_usPort, addr.sa_data, 14 );    return (S32)new_sock;}S32 sys_connect(S32 iFd, SOCKADDRIN_S *pAddr,S32 nAddrLen){    struct sockaddr addr;    addr.sa_family = pAddr->sin_chFamily;    aos_memcpy( addr.sa_data, &pAddr->sin_usPort, 14 );    return connect( (SOCKET)iFd, &addr, sizeof( struct sockaddr ) );}S32 sys_recv(S32 iFd,S8 *pBuf,S32 nLen,S32 iFlags) {        return recv( (SOCKET)iFd, pBuf, nLen, iFlags );}S32 sys_recvfrom(S32 iFd,S8 *pBuf,S32 nLen,S32 iFlags, SOCKADDRIN_S *pFrom,             S32 *pFromLen){    struct sockaddr addr;    S32 ret;    ret = recvfrom( (SOCKET)iFd, pBuf, nLen, iFlags, &addr, pFromLen );    if(ret>0)    {        pFrom->sin_chLen    = 0;        pFrom->sin_chFamily = (U8)addr.sa_family;        aos_memcpy( &pFrom->sin_usPort, addr.sa_data, 14 );    }        return ret;}S32 sys_recvmsg(S32 iFd, MSGHDR_S *pMsg,S32 iFlags) {    return -1;}S32 sys_send(S32 iFd,S8 *pString,S32 nLen,S32 iFlags) {    return send( (SOCKET)iFd, pString, nLen, iFlags );}S32 sys_sendto(S32 iFd,S8 *pString,S32 nLen,S32 iFlags,           SOCKADDRIN_S  *pAddr,S32 nAddrLen){    struct sockaddr addr;    S32 ret;    addr.sa_family = pAddr->sin_chFamily;    aos_memcpy( addr.sa_data, &pAddr->sin_usPort, 14 );    ret = sendto( (SOCKET)iFd, pString, nLen, iFlags, &addr,          sizeof(struct sockaddr) );    return ret;}S32 sys_sendmsg(S32 iFd, MSGHDR_S *pMsg,S32 iFlags){    return -1;}S32 sys_shutdown(S32 iFd,S32 iHow){    return shutdown( (SOCKET)iFd, iHow );}S32 sys_setsockopt(S32 iFd,S32 iLevel,S32 iOptName,S8 *pOptVal,S32 nOptLen){    return setsockopt( (SOCKET)iFd, iLevel, iOptName, pOptVal, nOptLen );}S32 sys_getsockopt(S32 iFd,S32 iLevel,S32 iOptName,S8 *pOptVal,S32 *pOptLen){    return getsockopt( (SOCKET)iFd, iLevel, iOptName, pOptVal, pOptLen );}S32 sys_getsockname(S32 iFd,SOCKADDRIN_S  *pAddr,S32 *pAddrLen){    struct sockaddr addr;    S32 ret;          ret = getsockname( (SOCKET)iFd, &addr, pAddrLen );    if( !ret )    {        pAddr->sin_chLen    = 0;        pAddr->sin_chFamily = (U8)addr.sa_family;        aos_memcpy( &pAddr->sin_usPort, addr.sa_data, 14 );    }    return ret;}S32 sys_getpeername(S32 iFd,SOCKADDRIN_S  *pAddr,S32 *pAddrLen)    {    struct sockaddr addr;    S32 ret;          ret = getpeername( (SOCKET)iFd, &addr, pAddrLen );    if( !ret )    {        pAddr->sin_chLen    = 0;        pAddr->sin_chFamily = (U8)addr.sa_family;        aos_memcpy( &pAddr->sin_usPort, addr.sa_data, 14 );    }    return ret;}S32 sys_select(S32 iNd, FD_SET_S *pIn, FD_SET_S *pOut, FD_SET_S *pEx, TIME_VAL_S *pTv0){    struct timeval time_val, *pTv;    S32 ret;    if( NULL != pTv0 )    {        time_val.tv_sec = pTv0->tv_lSec;        time_val.tv_usec= pTv0->tv_lUsec;        pTv = &time_val;    }    else    {        pTv = NULL;    }        ret = select( iNd, pIn, pOut, pEx, pTv );    return ret;}S32 sys_close(S32 iFd){    return closesocket( (SOCKET)iFd );}VOID sys_fd_set( S32 iFd, FD_SET_S *set ){    FD_SET( (SOCKET)iFd, set );}S32 sys_ioctl(S32 iFd,U32 ulReq,S8 *pVal){    return ioctlsocket( (SOCKET)iFd, ulReq, (U32*)pVal );}#ifdef __cplusplus}#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -