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

地方网站的建设还有哪些网站做产品众筹

地方网站的建设,还有哪些网站做产品众筹,学seo可以做网站吗,列表网免费发布信息1、连接的建立 分为两种:服务端处理接收客户端的连接;服务端作为客户端连接第三方服务 //作为服务端 int listenfd socket(AF_INET, SOCK_STREAM, 0); bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr))) listen(listenfd, 10); //…

1、连接的建立

分为两种:服务端处理接收客户端的连接;服务端作为客户端连接第三方服务

//作为服务端
int listenfd = socket(AF_INET, SOCK_STREAM, 0);
bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr)))
listen(listenfd, 10); //listen(fd, backlog)
int clientfd = accept(listenfd, addr, sz);//作为客户端
// 举例为非阻塞io,阻塞io成功直接返回0;
int connectfd = socket(AF_INET, SOCK_STREAM, 0);
int ret = connect(connectfd, (struct sockaddr*)&addr, sizeof(addr));
// ret == -1 && errno == EINPROGRESS 正在建立连接
// ret == -1 && errno = EISCONN 连接建立成功

TCP在listen时的参数backlog的意义

backlog 表示accept全连接队列的大小,也就是三次握手完成后,server没有调用accept从 全连接队列 取出连接时,连接队列中最大可存放的数量

2、连接的断开

主动断开:由于tcp是全双工的,连接包含两条通道,client的R端 server的W端,client的W端 server的R端。client和server都可以主动关闭两条通道的任意一条。close 会同时关闭R端和W端,shutdown可以指定关闭某一条通道

// 主动关闭
close(fd);
shutdown(fd, SHUT_RDWR);
// 主动关闭本地读端,对端写端关闭
shutdown(fd, SHUT_RD);
// 主动关闭本地写端,对端读端关闭
shutdown(fd, SHUT_WR);

被动关闭:一端主动关闭后,另一端的被动处理;可以区分到底是读端关闭了还是写端关闭了,以实现半关闭状态

// 被动:读端关闭
// 有的网络编程需要支持半关闭状态
int n = read(fd, buf, sz);
if (n == 0) {    close_read(fd);    // write()   //只是读端关闭了,还可以将未发送完成的数据继续发送完成 // close(fd);
}
// 被动:写端关闭
int n = write(fd, buf, sz);
if (n == -1 && errno == EPIPE) {    close_write(fd);    // close(fd);
}

EPIPE 错误表示在进行写入操作时,写入的目标文件描述符(或socket)对应的管道被关闭,或者在非阻塞模式下写入的目标已经没有足够的空间来接收数据

3、消息的到达

从读缓冲区中读取数据

int n = read(fd, buf, sz);
if (n < 0) { // n == -1if (errno == EINTR || errno == EWOULDBLOCK)break;close(fd);
} else if (n == 0) {close(fd);
} else {// 处理 buf
}

4、消息发送完毕

往写缓冲区写数据

int n = write(fd, buf, dz);
if (n == -1) {if (errno == EINTR || errno == EWOULDBLOCK) {return;}if (errno == EPIPE) {       // close(fd);}close(fd);
}
  • EINTR 表示系统调用被信号中断,在Linux系统中,一些系统调用可以被信号中断,而中断发生时,系统调用通常会返回EINTR错误码。这是系统为了避免进程在等待系统调用时被无限暂停,而中断休眠过程的一种防护机制。通常情况下,EINTR错误不属于真正意义上的错误,而是一种稍后可以重试的提示
  • EWOULDBLOCK 表示写缓冲区已满
  • EPIPE 错误表示在进行写入操作时,写入的目标文件描述符(或socket)对应的管道被关闭,或者在非阻塞模式下写入的目标已经没有足够的空间来接收数据
http://www.yayakq.cn/news/528925/

相关文章:

  • 关于网站建设项目实训报告门户网站系统源码
  • 广东佛山网站建设中国十大建设工程项目
  • 安云自助建站系统源码企业邮箱官方网站
  • 建设网站一般多钱wordpress单页插件
  • 有些网站域名解析错误免费网站下载直播软件
  • 小型企业网站设计seo研究中心学员案例
  • 做网站教程pdfhtml搜索框代码
  • 南京模板建站哪家好网站设计面试问题
  • 单页网站的域名在线gif图片制作
  • html5 网站源码深圳代理记账公司前十名
  • 视频网站开发有哪些功能龙岩网站建设模块制作
  • 网站建设基本常识用ssh做的网站
  • 湖州微网站建设做360手机网站快
  • 建立网站商店深圳哪家网站建设的公司好
  • 如何建设一个网站网页怎么建立一个网站让百度搜到
  • 怎么做家教网站wordpress 翻译语言
  • 哪里有做网站平台网页视频下载到电脑
  • 深圳网站建设延安ps如何做网站横幅
  • 网站建设类公司网页脚本设计
  • 建设厅网站用户名和密码广告设计工资高吗
  • 合肥网站建设是什么意思企业网站建设方案书模板
  • 中山高端网站建设公司怎样建设网站?(怎样注册域名?如何选择主机?网站应有哪些功能模块
  • 舟山网站开发一台网站服务器多少钱
  • 网站导航网公众号开发一般收费
  • 做网站要注册公司么给了几张图让做网站
  • 做网站的流程是什么怎么在文档中做网站一点就开
  • 有后台的网站模版长春高铁建站
  • 读网站建设一定要买电脑实践吗手机模拟器
  • 投标网站建设python手机在线编程
  • 上海人才招聘网站做网站要求什么条件