📄 function_tcp.h
字号:
#ifndef _FUNCTION_TCP_H
#define _FUNCTION_TCP_H_
#include <stdio.h>
#include <csl.h>
#include <std.h>
#include <csl_timer.h>
#include <csl_irq.h>
#include <csl_mdio.h>
#include "MyDefine.h"
typedef struct sockaddr SA;
typedef struct sockaddr *PSA;
// File Descriptor Functions
int fdOpenSession( Handle hTask );
void fdCloseSession( Handle hTask );
int fdSelect( int width, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout );
void fdSelectAbort( Handle hTask );
int fdClose( int fd );
Handle fdGetFileHandle( int fd );
int fdError();
int fdTransfer( Handle hSrcTask, int srcfd, Handle hDstTask, int *pdstfd );
int fdShare( Handle hSrcTask, int srcfd,
Handle hDstTask, int dstfdpref, int *pdstfd );
int fdShareAll( Handle hSrcTask, Handle hDstTask );
// File Handle Functions
void FileHandleClose( Handle h );
int FileHandleGetFd( Handle h );
// Socket Oriented Functions
int accept( int s, PSA pName, int *plen );
int bind( int s, PSA pName, int len );
int connect( int s, PSA pName, int len );
int getpeername( int s, PSA pName, int *plen );
int getsockname( int s, PSA pName, int *plen );
int getsockopt( int s, int level, int op, void *pbuf, int *pbufsize );
int listen( int s, int maxcon );
int recv( int s, void *pbuf, int size, int flags );
int recvfrom( int s, void *pbuf, int size, int flags, PSA pName, int *plen );
int recvnc( int s, void **ppbuf, int flags, Handle *pHandle );
int recvncfrom( int s, void **ppbuf, int flags,
PSA pName, int *plen, Handle *pHandle );
void recvncfree( Handle Handle );
int send( int s, void *pbuf, int size, int flags );
int sendto( int s, void *pbuf, int size, int flags, PSA pName, int len );
int setsockopt( int s, int level, int op, void *pbuf, int bufsize );
int shutdown( int s, int how );
int socket( int domain, int type, int protocol );
int socketpair( int domain, int type, int protocol, int s[2] );
// Pipe Oriented Functions
int pipe( int *pfd1, int *pfd2 );
/*
将用点分割的IP地址转换位一个in_addr结构的地址,这个结构的定义见笔记(一),
实际上就是一个unsigned long值。计算机内部处理IP地址可是不认识
如192.1.8.84之类的数据。
unsigned long inet_addr( const char FAR * cp );
举例:inet_addr("192.1.8.84")=1409810880
inet_addr("127.0.0.1")= 16777343
7、将网络地址转换位用点分割的IP地址,是上面函数的逆函数。
char FAR * inet_ntoa( struct in_addr in );
举例:char * ipaddr=NULL;
char addr[20];
in_addr inaddr;
inaddr. s_addr=16777343;
ipaddr= inet_ntoa(inaddr);
strcpy(addr,ipaddr);
这样addr的值就变为127.0.0.1。
注意意不要修改返回值或者进行释放动作。如果函数失败就会返回NULL值。*/
#endif /*---Function_TCP.h---*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -