![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Socket编程
race condition
你得进步。
展开
-
UNIX网络编程笔记 第六章 IO复用
内核同时监听多个socket,任何一个socket状态发生变化,都会通知给进程,这就是IO复用吧。IO复用的典型应用场合:当客户端处理多个描述符时使用 如果一个tcp服务器既要处理监听套接字,又要处理已连接套接字,需要IO复用 如果一个服务器既要处理tcp又要处理udp,需要IO复用 如果一个服务器要处理多个服务或者多个协议,需要IO复用 IO复用并非只限于网络编程,啥意思??呵呵五原创 2016-09-10 15:16:22 · 837 阅读 · 0 评论 -
UNIX网络编程笔记 第四章 基本TCP套接字编程
基本TCP套接字编程函数#include <sys/socket.h>int socket(int family, int type, int protocol);//成功返回非负描述符,出错返回-1。protocol为0代表为type选择相应默认协议int connect(int socked,const struct sockaddr *serveraddr,socklen_t addrle原创 2016-09-04 20:42:03 · 434 阅读 · 0 评论 -
UNIX网络编程笔记 第三章 套接字编程简介
套接字编程简介IPV4套接字地址结构sockaddr_in#include <netinet/in.h>struct in_addr { in_addr_t s_addr; //32bit}struct sockaddr_in { uint8_t sin_len; // sa_family_t sin_family; //AF_原创 2016-09-04 11:37:03 · 421 阅读 · 0 评论 -
UNIX网络编程笔记 第二章 传输层TCP、UDP和SCTP
第二章TCP MSS选项(Maximum Segment Size): SYN报文中携带该选项,告诉对端它在本连接中愿意接收的最大数据字节数。用来防止分片。MSS精彩设置为MTU减去IP和TCP首部的固定长度,以太网中使用IPV4的MSS为1460(1500-20-20),IPV6为1440(1500-40-20)TIME_WAIT状态: 可靠的实现TCP全双工连接的终止(防止原创 2016-09-03 11:35:20 · 727 阅读 · 0 评论 -
UNIX网络编程笔记 第七章 套接字选项
getsockopt和setsockopt函数:#include <sys/socket.h>int getsockopt(int fd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int fd,int level, int optname,const void *optval, socklen原创 2016-09-11 11:55:10 · 723 阅读 · 0 评论 -
UNIX网络编程笔记 第八章 基本UDP套接字编程
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,size_t nbytes,int fl原创 2016-09-16 12:55:00 · 463 阅读 · 0 评论 -
UNIX网络编程笔记 第十一章 名字与地址转换
只适用于IPV4的函数:#include <netdb.h>struct hostent *gethostbyname(const char *hostname);//成功返回非空指针,出错返回NULL且设置h_errnostruct hostent{ char *h_name; //名字 char **h_aliases; //指向别名列表的指针 i原创 2016-09-17 12:25:06 · 429 阅读 · 0 评论 -
UNXI网络编程笔记 第十二章IPV4与IPV6的互操作性
IPv4客户与IPv6服务器: 地址转换是由服务器端处理的 假设服务器支持双协议栈,而且即有一个IPv4地址,由有一个IPv6地址。服务器绑定了IPv6的通配地址。此时IPv4客户端要与服务器通信: 1)IPv6服务器启动,创建IPv6套接字,并且绑定通配地址 2)IPv4客户通过域名解析getaddrinfo找到服务器主机的IPv4地址 3)客户调用connect连接服务原创 2016-09-24 12:24:13 · 553 阅读 · 0 评论 -
UNIX网络编程笔记 第五章 TCP客户/服务器程序示例
TCP客户/服务器程序示例信号 就是告知某个进程发生了某个事件的通知,有时也称为软中断(硬中断是硬件发给内核的)。信号通常是异步发生的,就是说进程预先不知道信号发生的准确时刻。 信号可以:1)由一个进程发送给另一个进程2)由内核发送给某个进程在服务器子进程终止时,内核给父进程发送一个SIGCHLD信号。每个信号都有一个与之关联的处置(disposition),也称为行为(action)原创 2016-09-05 22:32:10 · 591 阅读 · 0 评论