网络编程之域套接字

本文详细探讨了网络编程中的Unix域套接字,重点在于本地通讯的实现,包括TCP和UDP两种方式。在TCP部分,阐述了服务器和客户端的交互过程;在UDP部分,强调了客户端必须绑定本地信息以接收服务器数据的重要性。
摘要由CSDN通过智能技术生成

只能做本地通讯的套接字:AF_UNIX, AF_LOCAL

1. socket

功能:创建套接字;
头文件:
       #include <sys/types.h>          /* See NOTES */
       #include <sys/socket.h>
原型:
       int socket(int domain, int type, int protocol);
​
       #include <sys/socket.h>
       #include <sys/un.h>
​
       unix_socket = socket(AF_UNIX, type, 0);
​
参数:
    int domain:Linux支持的协议族(地址族)
       AF_UNIX, AF_LOCAL   Local communication              unix(7)
​
    
    int type:指定传输层协议;
        SOCK_STREAM:字节流式套接字,--->TCP
        SOCK_DGRAM:数据报式套接字----->UDP;
        SOCK_RAW:原始套接字,需要手动指定传输协议,定义在第三个参数中;
​
    int protocol:指定协议;0代表默认协议;
返回值:
    成功,返回一个文件描述符(套接字);
    失败,返回-1,更新errno;
​
​
地址信息结构体:
    AF_UNIX : man 7 unix
           struct sockaddr_un {
               sa_family_t sun_family;               /* AF_UNIX */
               char        sun_path[108];            /* pathname */     套接字文件的路径
                            注意:在服务器中,这个套接字文件必须事先不存在,需要由bind函数创建。
                            所以,在bind函数运行之前,需要判断文件存不存在,如果存在则删除该文件;
           };
​

2. access

功能:判断文件是否有某种权限,或者文件是否存在;
头文件:
       #include <unistd.h>
原型:
       int access(const char *pathname, int mode);
参数:
    char *pathname:指定要判断的文件路径及文件名;
    int mode:
        R_OK 判断文件是否有可读权限
        W_OK 写
        X_OK 执行
      ---以上三种可以用 | 连接------
        F_OK 判断文件是否存在;
返回值:
    文件存在,或者有指定权限,返回0;
    否则返回-1,更新errno;

3. unlink

功能:删除文件;
头文件:
       #include <unistd.h>
原型:
       int unlink(const char *pathname);
参数:
    char *pathname:指定要删除的文件路径及文件名;
返回值:
    成功,返回0;
    失败,返回-1,更新errno
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值