菜单
  

            printf("Write success, pid: %d\n", getpid());

     

        } else if(pid == 0) {

            //关闭另外一个套接字

            close(socket_pair[0]);

            read(socket_pair[1], buf, sizeof(buf));        

            printf("Read result: %s, pid: %d\n",buf, getpid());

        }

     

        for(;;) {

            sleep(1);

        }

     

        return EXIT_SUCCESS;    

    sendmsg, recvmsg , send函数的使用

    sendmsg, recvmsg , send三个函数的头文件:

     

    #include <sys/types.h>  

    #include <sys/socket.h>

    sendmsg函数 

    定义函数

     

              int sendmsg(int s, const strcut msghdr *msg, unsigned int flags);

     

    函数说明:sendmsg()用来将数据由指定的socket传给对方主机. 

    参数s:为已建立好连线的socket, 如果利用UDP协议则不需经过连线操作. 

    参数msg:指向欲连线的数据结构内容, 参数flags 一般默认为0, 详细描述请参考send(). 

    返回值:成功返回发送的字节数,出错返回-1

     

    recvmsg函数 

    定义函数

     

    int recvmsg(int s, struct msghdr *msg, unsigned int flags);

    函数说明:recvmsg()用来接收远程主机经指定的socket 传来的数据. 

    参数s 为已建立好连线的socket, 如果利用UDP 协议则不需经过连线操作. 

    参数msg 指向欲连线的数据结构内容, 

    参数flags 一般设0, 详细描述请参考send(). 

    返回值:成功则返回接收到的字符数, 失败则返回-1, 错误原因存于errno 中.

     

    send函数 

    定义函数: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.

     

    结构msghdr定义如下:

     

    struct msghdr

    {

        void *msg_name; //发送或接收数据的地址

        socklen_t msg_namelen; //地址长度

        strcut iovec * msg_iov; //要发送或接受数据

        size_t msg_iovlen; //容器数据长度

        void * msg_control; //附属数据

        size_t msg_controllen; //附属数据长度

        int msg_flags; //接收消息的标志

    };

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

    错误代码:

     

    1、EBADF 参数s 非合法的socket 处理代码.

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

    3、ENOTSOCK 参数s 为一文件描述词, 非socket.

    4、EINTR 被信号所中断.

  1. 上一篇:关心下一代工作委员会工作心得体会
  2. 下一篇:<activity-alias>标签详解和使用
  1. FileSystemWatcher的C#的FileSystemWatcher用法

  2. python中yield的用法举例

  3. @Deprecated注解功能用法不建议使用废弃的

  4. explicit c++中的作用和用法

  5. request.form的用法简介

  6. 多智能体系统一致性问题研究

  7. Bootstrap的OpenGL人体模型仿真

  8. PLC焊机电气控制系统设计开题报告

  9. 淮安乐天玛特连锁超市4P营销策略分析

  10. MATLAB动车组列车牵引变流...

  11. PLC启闭机液压系统设计及其故障诊断

  12. 跨国企业全球营销策略的市场定位调查

  13. 上市公司债务税盾文献综述和参考文献

  14. 友谊质量调查问卷表

  15. 小学课堂教学效率国内外研究现状和参考文献

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回