UNIX网络编程
长着翅膀的乌龟
it从业者,爱好者。
展开
-
前言
上学期开设了网络编程这门课,在上课的时候感觉学的不是很好,而且上课讲的内容太过于浅显,因此买了一本unix网络编程想深入学习一下网络编程。在接下来的一段时间内计划把重点放在这方面。...原创 2019-08-10 16:13:43 · 71 阅读 · 0 评论 -
unix网络编程笔记七
connect函数返回错误分析使用connnect函数连接服务器是TCP的三次握手的过程,当三次握手没有成功时便会出错返回-1,下面说几种出错的情况。当connnect发出连接即发送第一个SYN时,服务器端没有响应时会连续发送几个SYN,如果一直没有响应便会出错返回ETIMEDOUT。当客户端发送SYN请求,但是服务器回应一个RST时,客户端会返回一个ECONNREUSED错误。现在来...原创 2019-09-03 21:34:39 · 120 阅读 · 0 评论 -
unix网络编程笔记六
阻塞式I/O模型阻塞式I/O是我们常使用的I/O模型,很多函数默认都是阻塞的比如accept,read等函数。上面这个图展示了阻塞I/O的工作原理,在满足条件之前函数是不返回的比如recvfrom函数在没有网络数据到达之前不返回,当有数据到来时这个函数将数据从内核空间复制到用户空间。非阻塞式I/O模型指在一个函数的条件没有满足时,本应该不返回的但是非阻塞会使这个函数返回一个错误。上面图是...原创 2019-08-12 13:01:57 · 117 阅读 · 0 评论 -
unix网络编程笔记五
SIGCHLD信号在前面的例子中服务器都是创建一个子进程来和客户端进行交互,当客户端和服务器断开连接时服务器端和客户端交互的进程便会终止,并且会向父进程发送一个SIGCHLD信号,父进程没有对子进程善后的子进程在进程结束后我们称之为僵死进程,僵死进程会保存一些信息告知父进程,包括进程的id,终止状态和资源利用信息等。僵死进程会在内存中占用我们的空间,因此我们希望消除僵死进程,通常是使用wait...原创 2019-08-12 13:01:02 · 91 阅读 · 0 评论 -
unix网络编程笔记四
fgets和fputs函数#include<stdio.h>char *fgets(char *buf,int n,FILE *fp); 成功返回buf,失败或读取到文件末尾返回NULL这个函数的作用便是在一个文件中读取一行,有三个参数第一个表示读取到数据存放的缓冲区,第二个参数为最大读取的个数,第三个表示文件标识符。读取一行表示当读取到换行符时会在换行符的后面添加一...原创 2019-08-11 21:08:49 · 100 阅读 · 0 评论 -
unix网络编程笔记三
accept函数#include<sysy/socket.h>int socket(int family,int type,int protocol);使用这个函数创建一个套接字,函数执行成功返回一个套接字描述符,套接字描述符是一个小的整形数据,第一个参数表示地址族,第二个参数为套接字类型,第三个参数使用0来自适应前两个参数。family的取值AF_INET表示IPv4...原创 2019-08-10 11:29:12 · 274 阅读 · 0 评论 -
unix网络编程笔记二
套接字的地址结构在网络编程中定义了很多的结构体来存放地址信息,首先学习常见的地址结构。struct in_addr{ in_addr_t s_addr;};in_addr_t 是uint32_t类型的数据类型是用来表示ip地址的struct sockaddr_in{ uint8_t sin_len; sa_family_t sin_family; in_port_t s...原创 2019-08-09 14:46:28 · 147 阅读 · 0 评论 -
unix网络编程笔记一
UDP和TCP介绍udp和tcp是网络中传输层的两个协议,udp是数据包套接字,是不安全的只管发不在意目标是否成功接收是否出错等情况,tcp是传输控制协议,是流式套接字,有差错检测超时重传和错误处理等机制,可以认为是安全的。tcp虽然是安全的,但是这种安全是需要牺牲效率的,tcp协议在其中添加了很多的字段来保证数据的正确传输,因此tcp通常使用在对数据安全性较高的应用中。udp虽然是不安全的...原创 2019-08-09 09:52:28 · 130 阅读 · 0 评论 -
select多人聊天
head.h#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/socket.h>#include<fcntl.h>#include<netinet/in.h>#include<arpa/inet.h>#include&...原创 2019-09-08 16:31:36 · 327 阅读 · 1 评论