Socket 函数

Socket 小结

函数

注意 accept connect send recv

  1. socket()

    #include<sys/types.h>
    #include<sys/socket.h>
    int socket(int family,int type,int protocal);
    
    int family //参数指定所要使用的通信协议
    AF_UNIX // Unix 内部协议 
    AF_INET // Internet 协议 
    AF_Ns   //Xerox NS 协议
    AF_IMPLINK //IMP 连接层 
    
    int type //指定套接字的类型
    SOCK_STREAM//流套字
    SOCK_DGRAM//数据报套字
    SOCK_RAW  //未加工套接字
    SOCK_SEQPACKET//顺序包套接字
        
    int protocal //参数常设置为 0
    
    //socket()系统调用返回一个整数值,叫做套接字描述字 sockfd
    //失败 返回-1
  2. bind()

    #include<sys/types.h>
    #include<sys/socket.h>
    int bind(int sockfd,struct sockaddr *myaddr,int addrlen);
    //这个调用将一个名字命名给一个没有名字的套接字
    //第二个参数 myaddr 是指向一个特定协议地址的指针
    //第三个参数是这个地址结构的大小
    
    //bind()有三个作用: 
    //服务器在系统里登记它们的地址 
    //客户为它自己注册一个地址 
    //一个没有连接的客户确保系统固定分配给它一个唯一的地址 
    
    //成功返回0  失败返回-1
  3. connect()

    #include<sys/types.h>
    #include>sys/socket.h>
    int connect(int sockfd,struct sockaddr *servaddr,int addrlen);
    
    //客户端调用
    //sockfd  调用socket函数产生的
    //servaddr 服务器的信息
    //这个过程在 socket()调用后,将一个套接字描述符和一个与服务器建立的 连接的联系
    //成功返回0 失败返回-1

    客户端调用

    sockfd 调用socket函数产生的

    servaddr 服务器的信息

  4. listen

    #include<sys/types.h>
    #include<sys/socket.h>
    int listen(int sockfd,int backlog);
    
    //面向连接的服务器使用这个系统调用,来表示它希望接受连接
    //这个系统调用通常在 socket()和 bind()之后,在 accept()调用之前调用
    //参数 backlog 表示当它们等待执行 accept()系统调用之前
    //系统能对多少个连 接请求进行排队
    
  5. accept()

    #include<sys/types.h>
    #include<sys/socket.h>
    int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);
    //服务器调用
    //sockfd   前面服务器端已经bind 的socket描述符
    //addr  传出参数  返回链接客户端地址信息 含IP 和 端口号
    //传入传出参数  传入sizeof(addr) 大小 函数返回时 返回真正接收到地址结构体的大小
    //返回值 成功返回新的socket 文件描述符 用于和客户端通信  败返回-1
    

    服务器调用

    sockfd 前面服务器端已经bind 的socket描述符

    addr 客户端信息

    返回值 成功返回新的socket 文件描述符 用于和客户端通信 失败返回-1

  6. send() recv()

    #include<sys/types.h>
    #include<sys/socket.h>
    
    int send(int sockfd,char *buff,int nbytes,int flags);
    //不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据
    //第一个参数指定   发送端   套接字描述符
    //第三个参数指明   实际要发送   的数据的字节数
    //第四个参数一般置0
    
    int recv(int sockfd,char *buff,int nbytes,int flags);
    //不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据
    //第一个参数指定  接收端   套接字描述符
    //第三个参数指明     buf的长度
    //第四个参数一般置0

    send 发送到另一端

    recv 接受另一端

  7. close()

    #include<sys/types.h>
    #include<sys/socket.h>
    int close(int sockfd);
    
    //关闭一个套接字
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值