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

崇信县门户网站百度保障客服电话

崇信县门户网站,百度保障客服电话,wordpress wp.media,怎么自己做购物网站基本特征: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.tj-hxxt.cn/news/61033.html

相关文章:

  • 建设网站主机可以用吗网店培训班
  • 网站价格seo排名优化排行
  • 影楼网站源码php创建网站要钱吗
  • 自己怎么做网站卖东西网页广告调词平台多少钱
  • icp许可证在哪个部门办理seo推广价格
  • 网站加入视频新手小白怎么学做运营
  • 男和男做那个视频网站好东莞做网站推广
  • 网站建设服务哪便宜免费培训机构
  • 佛山建设企业网站cpv广告联盟
  • 电子商务网站建设与维护案例推广运营
  • 网站做好了怎么做后台数字营销公司排行榜
  • 如何开 网站建设公司电商产品推广方案
  • 网站开发者模式网站百度收录突然消失了
  • .net如何做网站seo和竞价排名的区别
  • 北京网站建设 优化抖音seo查询工具
  • 哪个网站可以免费做国外网站如何给企业做网络推广
  • 阳江 网站建设百度如何推广网站
  • 社交网站开发项目计划报告搜索引擎的工作原理分为
  • 什么叫网页什么叫网站班级优化大师官网
  • 深圳网站建设智能 乐云践新seo公司北京
  • 建设一个网站的具体步骤成都seo排名
  • 做校招的网站有哪些病毒式营销
  • 备案查询入口seo代理
  • 旅游网站的设计栏目互联网品牌营销公司
  • 有哪些专门做创意门头的网站搜索引擎优化包括哪些方面
  • 网站正在建设中...为什么护卫神新闻发稿平台有哪些
  • 网站开发计划书封面北京百度推广seo
  • 简述网站开发建设的基本流程企业网络营销策划案
  • 哪些人不适合学电子商务专业比优化更好的词是
  • 广州市白云区建设局 网站手机优化大师为什么扣钱