一、利用内核编程的API
sendto 和 recvfrom
sendto(经socket传送数据)
相关函数
send , sendmsg,recv , recvfrom , socket表头文件
#include < sys/types.h >定义函数
int sendto ( socket s , const void * msg, int len, unsigned int flags, const函数说明
sendto() 用来将数据由指定的socket传给对方主机。参数s为已建好连线的socket,如果利用UDP协议则不需经过连线操作。参数msg指向欲连线的数据内容,参数flags 一般设0,详细描述请参考send()。参数to用来指定欲传送的网络地址,结构sockaddr请参考bind()。参数tolen为sockaddr的结构长度。
返回值
返回值:成功则返回接收到的字符数,失败返回-1.
错误代码
EBADF 参数s非法的socket处理代码。
定义函数
ssize_t recvfrom(int sockfd,void *buf,int len,unsigned int flags, struct sockaddr *from,socket_t *fromlen);函数说明
recvfrom()用来接收远程主机经指定的socket传来的数据,并把数据传到由参数buf指向的内存空间,参数len为可接收数据的最大长度.参数flags一般设0,其他数值定义参考recv().参数from用来指定欲传送的网络地址,结构sockaddr请参考bind()函数.参数fromlen为sockaddr的结构长度.返回值
返回值:成功则返回接收到的字符数,失败返回-1.
错误代码
EBADF 参数s非合法的socket处理代码
范例
#include < sys/types.h >
bzero ( &addr, sizeof(addr) );
}
}
write/read
TCPServer端