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

📄 pcbuf.c

📁 dos 下 网络协议 dos 下 网络协议
💻 C
字号:
#include <copyright.h>
#include <wattcp.h>
#include <mem.h>

int sock_rbsize( sock_type *s )
{
    switch( _chk_socket( s )) {
#ifdef NOTUSED	// S. Lawson - wrong if application supplied buffer
	case 1 : return( tcp_MaxBufSize );
	case 2 : return( tcp_MaxBufSize );
#else
	case 1 : return( s->udp.maxrdatalen );
	case 2 : return( s->tcp.maxrdatalen );
#endif
     /* case 0 : */
	default: return( 0 );
    }
}

int sock_rbused( sock_type *s )
{
    switch( _chk_socket( s )) {
	case 1 : return( s->udp.rdatalen );
	case 2 : return( s->tcp.rdatalen );
     /* case 0 : */
	default: return( 0 );
    }
}

int sock_rbleft( sock_type *s )
{
    switch( _chk_socket( s )) {
#ifdef NOTUSED	// S. Lawson - wrong if application supplied buffer
	case 1 : return( tcp_MaxBufSize - s->udp.rdatalen );
	case 2 : return( tcp_MaxBufSize - s->tcp.rdatalen );
#else
	case 1 : return( s->udp.maxrdatalen - s->udp.rdatalen );
	case 2 : return( s->tcp.maxrdatalen - s->tcp.rdatalen );
#endif
     /* case 0 : */
	default: return( 0 );
    }
}

int sock_tbsize( sock_type *s )
{
    switch( _chk_socket( s )) {
	case 2 : return( tcp_MaxBufSize );
	default: return( 0 );
    }
}

int sock_tbused( sock_type *s )
{
    switch( _chk_socket( s )) {
	case 2 : return( s->tcp.datalen );
	default: return( 0 );
    }
}

int sock_tbleft( sock_type *s )
{
    switch( _chk_socket( s )) {
	case 2 : return( tcp_MaxBufSize - s->tcp.datalen );
	default: return( 0 );
    }
}

int sock_preread( sock_type *s, byte *dp, int len )
{
    int count;

    if ( (count = s->udp.rdatalen) < 1)    /* 0 : no data, -1 : error */
	return( count );

    if ( count > len ) count = len;
    movmem( s->udp.rdata, dp, count );
    return( count );
}

⌨️ 快捷键说明

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