![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 91
huangjh2018
这个作者很懒,什么都没留下…
展开
-
我的网络编程学习之路——主机字节序和网络字节序
1.字节序当我们与同一台计算机的进程进行通信时,一般不用考虑字节序。什么是字节序——字节序是一个处理器架构特性,用于指示像整数这样的大数据类型内部的字节如何排序。考虑一个16位整数,它由2个字节组成。内存中存储这两个字节有2种方法:一种是将低序字节存储在起始地址,这称为小 端字节序;另一种方法 是将高 字节序存储在起始地址,这称为大端字节序。原创 2017-06-15 20:47:40 · 418 阅读 · 0 评论 -
我的网络编程学习之路——基本的TCP套接字API
1.1 概述在这个篇章里面主要讲解编写一个完整的TCP客户/服务器程序所需要的基本套接字函数。这些API包括socket、connect、bind、listen和accept。1.2 socket函数为了执行网络I/O,一个进程必须做的第一件事情就是调用socket函数,指定期望的通信协议类型(使用IPv4的TCP、使用IPv6的UDP、Unix域字节流协议等)。原创 2017-06-15 22:04:35 · 469 阅读 · 0 评论 -
我的网络编程学习之路——TCP(流)套接字的读和写
1. 函数 read 和 write流字节套接字(例如TCP套接字)上的read和write函数所表现的行为不同于通常的文件I/O。字节流套接字上调用read或write输入或输出的字节数可能比请求的数量少(我们称之为部分读和部分写),然而这不是出错的状态。这个现象的原因在于内核中用于套接字的缓冲区可能已达到了极限。此时所需要的是调用者再次调用read或write函数,以输入或输出剩余的字节。原创 2017-06-18 13:52:37 · 2482 阅读 · 0 评论 -
我的网络编程学习之路——TCP和UDP
1.1 概述本篇我们的焦点是传输层,包括TCP、UDP。绝大多数客户/服务器网络应用使用TCP或UDP。UDP是一个简单的、不可靠的数据报协议,而TCP是一个复杂、可靠的字节流协议。这里我们将阐述以下相关主题:TCP的三路握手、TCP的连接终止序列和TCP的TIME_WAIT状态,加上由套接字提供的TCP和UDP的缓冲机制等。1.2 总览虽然协议族被称为“TCP/IP”,但除了TC原创 2017-06-22 21:20:47 · 427 阅读 · 0 评论 -
我的网络编程学习之路——地址转换函数
inet_pton 和 inet_ntop 这两个函数是随IPv6出现的新函数,对于IPv4地址和IPv6地址都适用。当然还有inet_aton、inet_addr和inet_ntoa在点分十进制与它长度为32位的网络字节序二进制值间转换IPv4地址。这里我们一般使用前两个函数。原创 2017-06-19 20:25:32 · 461 阅读 · 0 评论 -
我的网络编程学习之路——套接字选项
1.1 概述我们可以使用很多方法来获取和设置影响套接字的选项:getsockopt 和 setsockopt 函数;fcntl 函数;ioctl 函数。我们会从介绍getsockopt 和 setsockopt 函数开始,然后介绍所有的套接字选项。我们按以下分类进行详细介绍:通用、IPv4、IPv6、TCP和SCTP。最后,我们还介绍fcntl函数,因为它是把套接字设置为非阻塞原创 2017-06-19 21:11:18 · 1150 阅读 · 0 评论 -
我的网络编程学习之路——套接字地址结构
1.套接字地址结构大多数套接字函数都需要一个指向套接字地址结构的指针作为参数。每个协议族都定义它自己的套接字地址结构。这些结构的名字均以sockaddr_开头,并以对应每个协议族的唯一后缀结尾。1.1 IPv4套接字地址结构IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在文件中。struct in_addr { in_addr_t原创 2017-06-13 20:11:13 · 1698 阅读 · 0 评论 -
我的网络编程学习之路——poll函数
poll函数提供的功能与select函数类似,不过在处理流设备时,它能够提供额外的信息。原创 2017-07-05 21:19:08 · 381 阅读 · 0 评论 -
我的网络编程学习之路——epoll函数
1. 概述同 I/O多路复用和信号驱动I/O一样,Linux的epoll(event poll)API可以检查描述符上的I/O就绪状态。epollAPI的主要优点如下。当检查大量的文件描述符时,epoll的性能延展性比select()和poll()高很多。epoll API既支持水平触发也支持边缘触发。与之相反,select()和poll()只支持水平触发,而信号驱动I/O只支持边原创 2017-07-06 20:44:07 · 4003 阅读 · 1 评论