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

微信小程序 创建网站网站做造价

微信小程序 创建网站,网站做造价,商城小程序开发报价,wordpress 主题和插件6.3 网络编程主要函数介绍 下面全部函数的头文件都是 #include sys/types.h #include sys/socket.h6.3.1 socket函数 int socket(int domain, int type,int protocol);此函数用于创建一个套接字。 domain是网络程序所在的主机采用的通讯协族(AF_UNIX和AF_I…6.3 网络编程主要函数介绍 下面全部函数的头文件都是 #include sys/types.h #include sys/socket.h6.3.1 socket函数 int socket(int domain, int type,int protocol);此函数用于创建一个套接字。 domain是网络程序所在的主机采用的通讯协族(AF_UNIX和AF_INET等)。 AF_UNIX只能够用于单一的Unix 系统进程间通信而AF_INET是针对Internet的因而可以允许远程通信使用。 type是网络程序所采用的通讯协议(SOCK_STREAM,SOCK_DGRAM等)。 SOCK_STREAM表明用的是TCP 协议这样会提供按顺序的可靠双向面向连接的比特流。 SOCK_DGRAM 表明用的是UDP协议这样只会提不可靠无连接的通信。 关于protocol由于指定了type所以这个地方一般只要用0来代替就可以了。 此函数执行成功时返回文件描述符失败时返回-1,看errno可知道出错的详细情况。 6.3.2 bind函数 int bind(int sockfd, struct sockaddr *my_addr, int addrlen);从函数用于将地址绑定到一个套接字。一台电脑上可能有多个IP和端口这个套接字要绑定到哪个IP和端口需要用bind函数来绑定。 sockfd是由socket函数调用返回的文件描述符。 my_addr是一个指向sockaddr的指针。 addrlen是sockaddr结构的长度。 sockaddr的定义 struct sockaddr{ unisgned short as_family; char sa_data[14]; // 这14个字节里面含有 IP 和 端口但是不明显 };不过由于系统的兼容性,我们一般使用另外一个结构(struct sockaddr_in) 来代替。 sockaddr_in的定义 sockaddr 和 sockaddr_in 结构体的大小是完全一样的 struct sockaddr_in{ unsigned short sin_family; unsigned short sin_port; // 2字节 表示端口 struct in_addr sin_addr; // 4字节 表示IP地址 unsigned char sin_zero[8]; // 8字节 不用 24814字节和上面那个结构体一样 }如果使用Internet所以sin_family一般为AF_INET。 sin_addr还是一个结构体sin_addr.s_addr 设置为INADDR_ANY表示可以和主机的所有IP通信也就是监测所有的IP。 sin_port是要监听的端口号。要使用 htons(SERVER_PORT) 端口号转换为网络字节序 bind将本地的端口同socket返回的文件描述符捆绑在一起. 成功是返回0,失败的情况和socket一样返回 -1。 6.3.3 listen函数 int listen(int sockfd,int backlog);此函数宣告服务器可以接受连接请求。 sockfd是bind后的文件描述符。 backlog设置请求排队的最大长度。当有多个客户端程序和服务端相连时使用这个表示可以介绍的排队长度。 listen函数将bind的文件描述符变为监听套接字。 成功是返回0,失败的情况和socket一样返回 -1。 6.3.4 accept函数 int accept(int sockfd, struct sockaddr *addr,int *addrlen);服务器使用此函数获得连接请求并且建立连接。 sockfd是listen后的文件描述符。 addraddrlen是用来给客户端的程序填写的服务器端只要传递指针就可以了 bind,listen和accept是服务器端用的函数。 accept调用时服务器端的程序会一直阻塞到有一个客户程序发出了连接。 accept成功时返回最后的服务器端的文件描述符这个时候服务器端可以向该描述符写信息了失败时返回-1 。 可以认为这个描述符是这个客户端的象征之后接收发送就向该描述符操作 问如何把客户端的IP地址转换为我们常见的形式 答inet_ntoa(sockaddr.sin_addr) 把这个 sin_addr 转换为 ascii 格式的字符串 6.3.5 connect函数 对于TCP的连接这里会有3次握手 对于UDP的连接这里是虚假的连接目的只是为了获得IP地址这些数据而已 int connect(int sockfd, struct sockaddr * serv_addr,int addrlen);可以用connect建立一个连接在connect中所指定的地址是想与之通信的服务器的地址。 sockfd是socket函数返回的文件描述符客户端的文件描述符。 serv_addr储存了服务器端的连接信息其中sin_add是服务端的地址。 addrlen是serv_addr的长度。 connect函数是客户端用来同服务端连接的 成功时返回0sockfd是同服务端通讯的文件描述符客户端失败时返回-1。 6.3.6 send函数 ssize_t send(int sockfd, const void \*buf, size_t len, int flags);sockfd 指定发送端套接字描述符 buf 指明一个存放应用程序要发送数据的缓冲区 len 指明实际要发送的数据的字节数 flags 一般置0。 客户或者服务器应用程序都用send函数来向TCP连接的另一端发送数据 6.3.7 recv函数 【没有数据会休眠】 ssize_t recv(int sockfd, void *buf, size_t len, int flags);sockfd 指定接收端套接字描述符 buf 指明一个缓冲区该缓冲区用来存放recv函数接收到的数据 len 指明buf的长度也就是最多可以接收多少字节的数据 flags 一般置0。 客户或者服务器应用程序都用recv函数从TCP连接的另一端接收数据。 返回值平时会阻塞有数据就返回实际接收到了多少个数据 ​ if(iRecvLen 0) // 则表示出错了 6.3.8 recvfrom函数UDP 【没有数据会休眠】 ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);recvfrom通常用于【无连接】套接字因为此函数可以获得发送者的地址。 src_addr 是一个struct sockaddr类型的变量该变量保存源机的IP地址及端口号。 addrlen 常置为sizeof struct sockaddr。 6.3.9 sendto函数UDP ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);sendto和send相似区别在于sendto允许在无连接的套接字上指定一个目标地址。 dest_addr 表示目地机的IP地址和端口号信息 addrlen 常常被赋值为sizeof struct sockaddr。注意这个不是传入地址了。 sendto 函数也返回实际发送的数据字节长度或在出现发送错误时返回1。 6.3.10 close函数 close(iSocketClient);6.3.11 辅助函数 #include arpa/inet.h// 将 short 类型的整型端口号转换为 sockaddr_in 中的 sin_port 类型的网络端口号 // 将主机字节顺序转换为网络字节顺序 uint16_t htons(uint16_t hostshort);#include sys/socket.h #include netinet/in.h #include arpa/inet.h// 将 IP 地址结构体转换为 ascii码常见格式 char *inet_ntoa(struct in_addr in);$ ./a.out 226.000.000.037 # Last byte is in octal 226.0.0.31 $ ./a.out 0x7f.1 # First byte is in hex 127.0.0.1// 参数1cp 就是 192.168.1.1 这种格式的IP地址字符串 // 参数2inp 就是 struct in_addr 格式的IP地址也就是 int inet_aton(const char *cp, struct in_addr *inp);
http://www.hkea.cn/news/14366929/

相关文章:

  • 建服务网站需要多少钱加盟型网站
  • 男女做那个的网站是什么旅游做哪个网站好
  • 中高端网站设计排名郑州小程序网站开发
  • 自己在家怎么做网站服务器文字生成二维码
  • 有关电子商务网站建设的 论文仓库常用erp系统
  • 公司是否可以做多个网站wordpress api接口 APP
  • jsp网站开发四 酷 全书源码网站建设与维护ppt
  • 网站上传的工具网站建设企业建站
  • 什么网站做一件代发如何做公众号影视网站
  • 做网站价格沧州推广建站
  • 东莞樟木头网站建设济南网站建设选聚搜网络一x
  • 注册域名网站备案wordpress 地理位置签到
  • 十大下载网站免费安装电商网站建设网络公司
  • 网站导航设计法则没域名 打开网站
  • 建设网站公司怎么收费wordpress批注功能
  • 电脑视频wordpress三亚网站优化
  • 网站模板制作视频教程公司标志设计
  • 中山手机网站建设报价现代装修风格效果图
  • 网站怎么优化排名网站seo顾问
  • 遵义市做网站的电话网站建设服务合同范本
  • 网上推广网站廊坊公司做网站
  • 海外网站建设推广广告制作公司经营范围有哪些
  • 设计师做私单网站wordpress标签不被收录
  • 地方门户网站有哪些电商中seo是什么意思
  • 济南建网站最好的国际购物网站
  • 网站开发及技术音乐网站建设规划书
  • 九江专业的企业网站建设公司建设安全网站的目的
  • 教做甜品的网站网页微信版官网登录怎么弄到桌面
  • 动感十足的网站免费建网站平台哪个好
  • 给别人做网站挣钱吗?如何推广一个新的app