Linux网络编程基础实验(7)

时间:2025-04-21

了解SOCKET编程,熟悉C/S模式服务器和客户端。

相关函数 sendto,sendmsg,recv,recvfrom,socket

表头文件 #include<sys/types.h>

#include<sys/socket.h>

定义函数 int send(int s,const void * msg,int len,unsigned int falgs);

函数说明 send()用来将数据由指定的socket 传给对方主机。参数s为已建立好连接的socket。

参数msg指向欲连线的数据内容,参数len则为数据长度。参数flags一般设0,

其他数值定义如下

MSG_OOB 传送的数据以out-of-band 送出。

MSG_DONTROUTE 取消路由表查询

MSG_DONTWAIT 设置为不可阻断运作

MSG_NOSIGNAL 此动作不愿被SIGPIPE 信号中断。

返回值 成功则返回实际传送出去的字符数,失败返回-1。错误原因存于errno

错误代码 EBADF 参数s 非合法的socket处理代码。

EFAULT 参数中有一指针指向无法存取的内存空间

ENOTSOCK 参数s为一文件描述词,非socket。

EINTR 被信号所中断。

EAGAIN 此操作会令进程阻断,但参数s的socket为不可阻断。

ENOBUFS 系统的缓冲内存不足

ENOMEM 核心内存不足

EINVAL 传给系统调用的参数不正确。

(7)sendto(经socket传送数据)

相关函数 send , sendmsg,recv , recvfrom , socket

表头文件 #include < sys/types.h >

#include < sys/socket.h >

定义函数 int sendto ( int s , const void * msg, int len, unsigned int flags, const

struct sockaddr * to , int tolen ) ;

函数说明 sendto() 用来将数据由指定的socket传给对方主机。参数s为已建好连线的socket,

如果利用UDP协议则不需经过连线操作。参数msg指向欲连线的数据内容,参数

flags 一般设0,详细描述请参考send()。参数to用来指定欲传送的网络地址,结

构sockaddr请参考bind()。参数tolen为sockaddr的结果长度。

返回值 成功则返回实际传送出去的字符数,失败返回-1,错误原因存于errno 中。

错误代码 同send。

(8)recv(经socket接收数据)

相关函数 recvfrom,recvmsg,send,sendto,socket

表头文件 #include<sys/types.h>

#include<sys/socket.h>

定义函数 int recv(int s,void *buf,int len,unsigned int flags);

函数说明 recv()用来接收远端主机经指定的socket传来的数据,并把数据存到由参数buf 指

向的内存空间,参数len为可接收数据的最大长度。

Linux网络编程基础实验(7).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219