
网络编程
princeteng
这个作者很懒,什么都没留下…
展开
-
http/https/SSL/cookie
1.方法2.持久连接HTTP的初始版本中,每进行一次HTTP通信就要断开一次TCP连接,这样使得效率很低,开销较大。为解决这个问题,HTTP1.1和部分HTTP1.0提出了持久连接(HTTP persistent connections,也叫HTTP keep-alive)。只要任何一端没有明确提出断开连接,就一直保持连接。持久连接使得请求可以通过pipelining的方式发送,不必等...原创 2020-01-08 22:24:17 · 171 阅读 · 0 评论 -
unix网络编程卷一:第八章——基本UDP套接口编程
8.2 recvfrom和sendto函数#include <sys/socket.h>ssize_t recvfrom(int sockfd, void* buf, size_t nbytes, int flags, struct sockaddr* from, socklen_t* addrlen);ssize_t sendto(int sockfd, void* buf, ...原创 2020-01-08 17:24:25 · 164 阅读 · 0 评论 -
unix网络编程卷一:第七章——套接口选项
SO_RECVBUF无论是TCP还是UDP,每一个套接口都有发送缓冲区与接收缓冲区。接收缓冲区保存接收到的数据,直到应用程序来读。对于TCP:接收缓冲区可用空间的大小限制了TCP通知对端的窗口大小,这就是TCP的流量控制,也就是说TCP不允许对端发送超过窗口大小的数据,如果超过了窗口大小,TCP将会丢弃他们。对于UDP:当接收缓冲区的大小不够时,新来的数据将会被丢弃。UDP没有流量控制。...原创 2020-01-08 10:52:01 · 192 阅读 · 0 评论 -
unix网络编程卷一:第六章——I/O复用 select poll
6.2 I/O模型6.3 select函数函数作用:允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或多个事件发生或经历一段指定事件后返回。之前一般阻塞在真正的I/O系统调用上,现在阻塞在select上,由select管理并通知哪个描述字就绪。我们调用select通知内核我们感兴趣的描述字。#include <sys/select.h>#include <s...原创 2020-01-07 21:27:46 · 259 阅读 · 0 评论 -
unix网络编程卷一:第五章——TCP客户端/服务器例子
这一章通过一个TCP客户端与服务器的例子讲解了套接字的使用方法,以及服务器端子进程终止后的处理(僵尸进程),并对运行过程中客户端或服务器出现的异常情况进行了讨论。5.7 正常终止客户端代码:#include "unp.h"voidstr_cli(FILE *fp, int sockfd){ char sendline[MAXLINE], recvline[MAXLINE]; w...原创 2020-01-06 22:00:51 · 184 阅读 · 0 评论 -
unix网络编程卷一:第四章——基本TCP套接口编程
基本TCP套接口编程4.1 过程4.2 socket#include <sys/socket.h>int socket(int family, int type, int protocal);返回值:成功返回非负整数,与文件描述符类似,称为套接口描述字,简称套接字(sockfd)。注意调用完socket函数之后只是有了一个某一协议下的套接字,并没有指明地址之类的。f...原创 2020-01-05 22:20:45 · 219 阅读 · 0 评论 -
unix网络编程卷一:第三章
3.2 套接口地址结构struct in_addr { in_addr_t s_addr; /* 32bit ipv4 address */};struct sockaddr_in { uint8_t sin_len; /* length of structure */ sa_family_t sin_family; /* AF_IN...原创 2020-01-05 16:37:54 · 166 阅读 · 0 评论