当前位置: 首页 > news >正文

万户网络做网站如何百度搜索官网

万户网络做网站如何,百度搜索官网,深圳网站建设-猴王网络,守望轩 wordpress基本特征:socket是一种接口技术,被抽象了一种文件操作,可以让同一计算机中的不同进程之间通信,也可以让不同计算机中的进程之间通信(网络通信) 本地进程间通信编程模型: 进程A …

        基本特征:socket是一种接口技术,被抽象了一种文件操作,可以让同一计算机中的不同进程之间通信,也可以让不同计算机中的进程之间通信(网络通信)

    本地进程间通信编程模型:

        进程A                                                        进程B

    创建socket对象                                    创建socket对象

    准备通信地址(本地socket文件)            准备通信地址

    绑定sokect对象和地址                           ...

    监听                                                       ...                

    等待连接                                               连接

    接收\发送数据                                       发送\接收数据

    关闭socket                                            关闭socket

    删除socket文件

   

    注意:底层需要借助socket文件,才能进行同一计算机不同进程的通信

    注意:每一步骤的返回值一定要判断 否则不知道是哪一步出问题

创建socket对象

 int socket(int domain, int type, int protocol);功能:创建socket对象

    domain:

        AF_UNIX/AF_LOCAL   本地通信,进程间通信

        AF_INET            基于IPv4地址通信

        AF_INET6           基于IPv6地址通信

    type:

        SOCK_STREAM     数据流协议 //TCP

        SOCK_DGRAM      数据报协议 //UDP

    protocol:

        特殊通信协议,一般不用,写0即可

    返回值:成功返回socket描述符,失败返回-1  

绑定socket和通信地址

 int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);功能:绑定socket和通信地址(文件路径\网络地址)

     sockfd:socket描述符

     addr:通信地址结构体

        实际使用传递的地址结构体 sockaddr_un或者sockaddr_in,但是传参时要把它们转换成sockaddr,因为C语言没有自建类型的自动类型识别,因此要强转 //C++有自动类型识别转换

        //本地通信使用

        #include <sys/un.h>

        struct sockaddr_un {

            __kernel_sa_family_t sun_family; // 地址簇domain写啥它写啥

            char sun_path[UNIX_PATH_MAX];   // socket文件路径 (文件路径给新的  会自动帮你创建文件)

        };

        //  网络通信时使用

        #include <netinet/in.h>

        struct sockaddr_in {

        __kernel_sa_family_t  sin_family; //地址簇domain写啥它写啥

        __be16        sin_port;   // 端口号

        struct in_addr    sin_addr;   // IP地址结构体

        };

        struct in_addr {

            __be32  s_addr;     //  IP地址数据

        };

    addrlen:地址结构体的字节数,用于区分是sockaddr_in还是sockaddr_un

    返回值:成功0 失败-1

监听绑定好的socket

 int listen(int sockfd, int backlog);功能:监听已经绑定好的socket

    sockfd:socket描述符

    backlog:监听等待连接的排队数量 默认最大128

    //等待连接有个排队队列  backlog是指队列满了之后还可以额外排队的数量 随便写5

    返回值:成功0 失败-1  //监听成功才能等待连接

等待连接

 int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);功能:等待连接

    sockfd:socket描述符

    addr:获取连接者的地址,不想获取可以给NULL   //本地连接基本不用获取

    addrlen:获取连接者的通信地址结构体字节数,不想获取可以给NULL

    返回值:成功返回一个针对该连接的新的socket描述符,失败返回-1 //接下去通信需要用这个新的socket描述符

    注意:

        1、如果没有连接,那么该函数会阻塞等待

        2、如果要获取连接者的地址,后面两个参数都需要传递

        3、addrlen要获取时,先要给addrlen传递addr的字节数,才能获取连接者的ip

连接

 int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);功能:连接socket

    sockfd:socket描述符

    addr:目标地址  //建立连接

    addrlen:目标地址结构体的字节数

    返回值:成功0 失败-1

发送数据

 ssize_t send(int sockfd,const void *buf,size_t len,int flags);功能:向建立连接之后的socket发送数据,数据流通信使用

    sockfd:建立连接之后socket描述符

    buf:待发送的数据内存首地址

    len:要发送的字节数

    flags:一般写0阻塞发送即可

        MSG_DONTWAIT 不阻塞

        MSG_OOB      优先紧急数据

    返回值:成功发送的字节数,出错返回-1 //连接断开了就可能发送失败

接收数据

 ssize_t recv(int sockfd, void *buf, size_t len, int flags);功能:从建立连接的socket中接收数据,数据流通信使用

    sockfd:建立连接之后socket描述符

    buf:存储接收的数据的内存首地址

    len:buf的字节数

    flags:一般写0阻塞接收即可

        MSG_DONTWAIT 不阻塞

    返回值:成功接收到的字节数,-1出现错误,正常断开返回0

关闭socket

    close(fd)

    功能:关闭socket //一切皆文件 关闭新的那个socket 断开连接

   

    192.168.122.4   192.168.122.5   ip地址

    255.255.255.0   子网掩码

    192.168.122.0   网络地址

    192.168.122.4/24  (24个1)相当于&255.255.255.0

http://www.mmbaike.com/news/55269.html

相关文章:

  • 网站设计书模板网站关键词优化公司哪家好
  • 网站上传的图片怎么做的清晰度长春网站建设团队
  • 手机销售网站怎么做百度竞价推广培训
  • 网页背景做的比较好的网站营销型网站制作建设
  • 新浪博客怎么给自己网站做链接吗新冠疫情最新情况
  • 外贸b2c电子商务网站谷歌商店paypal官网下载
  • 千图主站与普通网站的区别写一篇软文多少钱
  • 一级域名网站怎么做网页设计素材
  • 2014山东春季高考网站建设今天刚刚发生的新闻最新新闻
  • 如何制作一个注册网站企业网站设计模板
  • 网站建设和维护面试题今日大新闻
  • 建https网站网络最有效的推广方法
  • wordpress 管理员登陆重庆seo网络优化师
  • 普宁市做网站营销引流都有什么方法
  • 网站建设 云南湖南关键词排名推广
  • 毕业设计网站怎么做单页网站
  • 抚州网站推广疫情死亡最新数据消息
  • 做网站需要固定ip么怎样在百度上推广
  • 章贡区建设局网站如何在微信上做广告
  • java电影资源网站开发网站流量排名
  • wordpress 调用文章id搜索引擎优化的五个方面
  • 做a动漫视频在线观看网站15个常见关键词
  • 怎么进入企业的网站百度的网址怎么写
  • 公司门户网站建设费计入什么科目网络营销的优势和劣势
  • 网站空间报价单百度官网认证免费
  • 搭建网站公司哪家好靠谱的代写平台
  • 网站建设要求营销策划方案案例范文
  • 建设美妆企业网站搜索引擎营销有哪些方式
  • wordpress 限时杭州seo博客
  • 郑州企业网站建设重庆网站推广联系方式