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

软件平台有哪些无锡seo公司找哪家好

软件平台有哪些,无锡seo公司找哪家好,江门网站建设哪家好,docker wordpress 修改端口socket网络编程的步骤 大体上,连接的建立过程就是:服务器在确定协议类型后,向外广播IP地址和端口号,并监听等待,直到客户端获取了IP地址和端口号并成功连接: 使用socket来进行tcp协议的网络编程的大体步骤…

socket网络编程的步骤

大体上,连接的建立过程就是:服务器在确定协议类型后,向外广播IP地址和端口号,并监听等待,直到客户端获取了IP地址和端口号并成功连接:

 使用socket来进行tcp协议的网络编程的大体步骤:

其实socket的使用就像之前文件编程中打开文件的操作一样,返回的是一个标识符,之后就对这个标识符进行操作。

相关的API讲解

参考:linux网络编程:网络socket基础编程(一) 基础API_Jags的博客-CSDN博客

socket函数

创建套接字的函数

头文件

#include <sys/types.h>     
#include <sys/socket.h>

函数原型

int socket(int domain, int type, int protocol);

函数参数

  • domian:表示所使用的协议族,可以选取以下值中的一个:

AF_INET:IPv4因特网域 (最常用,TCP/IP的协议族)

AF_INET6:IPv6因特网域

AF_UNIX:Unix域

AF_ROUTE:路由套接字

AF_KEY:密钥套接字

AF_UNSPEC:未指定

... ...

  • type:指定socket的类型,可以选取以下值中的一个:

SOCK_STREAM:字节流套接字(提供可靠,面向连接的信息流,使用TCP协议,保证了数据的正确性和顺序性)

SOCK_DGRAM:数据报套接字(提供无连接的服务,数据可以通过相互独立的报文进行传输,是无序的,并且不能保证可靠性,使用UDP协议

SOCK_RAW:原始套接字(运行程序使用底层协议如IP或ICMP直接进行访问,功能强大但使用不便,主要用于协议的开发)

... ...

  • protocol:协议的类型,通常赋值“0”,表示type类型对应的默认协议,也可以从以下值中选一个:

IPPROTO_TCP:tcp协议

IPPROTO_UDP:udp协议

IPPROTO_SCTP:sctp协议

IPPROTO_TIPC:tipc协议

... ...

  • 返回值:成功则返回 监听套接字描述符,失败返回-1

 

bind函数(服务器)

服务器绑定IP和端口号到网络标识符的函数

头文件

#include <sys/types.h>    
#include <sys/socket.h>

函数原型

 int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

函数参数

  • sockfd:socket函数返回的 监听套接字描述符
  • addr:一个结构体指针,指向 “包含有本机IP地址以及端口号” 的 “sockaddr结构体” 的指针
//ipv4(AF_INET)对应的地址结构
struct sockaddr{unsigned short as_family; //协议族char sa_data[14]; //IP+端口号
};等价于,下面这种是优化版struct sockaddr_in{sa_family_t sin_family; //协议族in_port_t sin_port; //端口号struct in_addr sin_addr; //IP地址结构体unsigned char sin_zero[8]; //填充,没有实际意义,只是为了跟socketaddr结构在内存中对齐,这样两者才能相互转换
};
  • addrlen:第二个参数所指向的结构体的长度,使用 sizeof()来获取
  • 返回值:成功返回0,失败返回-1

listen函数(服务器)

服务器监听设置的函数

在这里插入图片描述

头文件

#include <sys/types.h>      
#include <sys/socket.h>

函数原型

int listen(int sockfd, int backlog);

函数参数

  • sockfd:socket函数返回的 监听套接字描述符
  • backlog:指定在请求队列中允许的最大请求数
  • 返回值:成功则返回0,失败返回-1

accept函数(服务器)

服务器接受连接的函数,用于从已完成连接队列的队头返回下一个已完成连接,如果已完成连接队列为空,那么进程投入睡眠

在这里插入图片描述

头文件

#include <sys/types.h>      
#include <sys/socket.h>

函数原型

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

函数参数

  • sockfd:socket函数返回的 监听套接字描述符
  • addr:用来返回已连接的客户端的协议地址,不关心就写NULL
  • addrlen:返回上一个参数对应结构体的长度,不关心就写NULL
  • 返回值:成功则返回已 连接套接字描述符,失败返回-1

connect函数(客户端)

客户端连接的函数,如果是TCP套接字,调用 connect函数将激发TCP的三路握手过程

头文件

#include <sys/types.h>      
#include <sys/socket.h>

函数原型

 int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

函数参数

  • sockfd:套接字描述符
  • addr:服务器端的协议地址
  • addrlen:返回上一个参数对应结构体的长度
  • 返回值:成功返回0,失败返回-1

inet_aton 和 inet_ntoa函数

地址转换的API

头文件

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

函数原型

int inet_aton(const char *cp, struct in_addr *inp);
//把字符串形式的“192.168.X.XXX”转为网络能识别的格式
char *inet_ntoa(struct in_addr in);
//把网络格式的IP地址转为字符串形式

函数参数1

  • cp:字符串形式的IP地址
  • inp:存放转化后的 网络形式的IP地址
  • 返回值:成功返回1,失败返回0

函数参数2

  • in:网络形式的IP地址
  • 返回值:成功返回点分十进制数,失败返回NULL

read 和 write 函数

在套接字通讯中进行字节读取函数

和之前文件的的读写函数名字一样,但参数不太一样,因为在套接字的通讯中,输入或输出的字节可能比请求的少。

使用详见:使用read write 读写socket_san.hang的博客-CSDN博客

头文件

#include <unistd.h>

函数原型

ssize_t write(int fd, const void *buf, size_t nbytes);
//将buf中的nbytes个字节写入到文件描述符fd,成功时返回写的字节数
ssize_t read(int fd, void *buf, size_t nbyte);
//从fd读取nbyte个字节到buf中,返回实际所读的字节数

网络I/O还有一些函数,例如 recv()/send(); readv()/writev(); recvmsg()/sendmsg()等...

send 和 recv函数

另一组用于socket数据收发的API

头文件

#include <sys/types.h>      
#include <sys/socket.h>

函数原型

ssize_t send(int sockfd, const void *buf, size_t len, int flags);
ssize_t recv(int sockfd, void *buf, size_t len, int flags);

函数参数

  • sockfd:socket函数返回的 监听套接字描述符
  • buf:代发数据 / 接受缓冲区
  • len:数据长度
  • flags:通常为0
  • 返回值:成功返回 发送 / 接收 的字节数, 失败 返回-1

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

相关文章:

  • b2b网站推广方案怎么写百度指数免费查询
  • 做设计常用网站有哪些百度认证号码平台
  • 旅游网站内容做多还是少网络广告的形式有哪些?
  • 宝塔搭建app教程更先进的seo服务
  • 佛山智能建站三只松鼠有趣的软文
  • 太原企业自助建站广告营销方式有哪几种
  • 增加网站产品江苏营销型网站建设
  • 用别的域名给网站做竞价sem是什么意思啊
  • 小程序商城服务口碑好百度seo技术
  • 专业做网站的公司哪家好广告做到百度第一页
  • 做网站能成功吗郑州网站制作公司哪家好
  • 深圳去聋哑做义工申请网站郑州网络推广厂家
  • 济南 域名注册 网站建设百度竞价推广的技巧
  • 常州集团网站建设seo竞争对手分析
  • 免费个人网站域名注册重庆排名优化整站优化
  • 长页网站买了500元黑科技引流靠谱吗
  • 做行业门户网站注意什么广东企业网站seo哪里好
  • wordpress登陆后跳转首页sem和seo是什么
  • app开发哪家好公司承德seo
  • wordpress get_queried_object百度地图优化排名方法
  • 建设实验中心网站武汉百度推广入口
  • 网站建设 乐清网络公司品牌策划方案范文
  • vs网站开发源码西安seo学院
  • wordpress 小说站主题如何免费推广网站
  • 四川省住房建设厅网站打不开人民网 疫情
  • 手游网站怎么做河南seo推广
  • 怎么在网站上做排名营销网站建设方案
  • 网站的线下推广怎么做谷歌建站
  • 做游戏视频网站最近刚发生的新闻
  • 智慧团建登录手机版正式版兰州正规seo整站优化