TCP/IP 网络编程
文章平均质量分 89
整理书的内容
你回到了你的家
这个作者很懒,什么都没留下…
展开
-
六、基于UDP的服务器端/客户端
一、实现基于UDP的服务器端/客户端1.1 UDP中的服务器端和客户端没有连接UDP服务器端/客户端不像TCP那样在连接状态下交换数据,因此与TCP不同,无需经过连接过程。也就是说,不必调用TCP连接过程中调用的listen函数和accept函数。UDP中只有创建套接字的过程和数据交换过程。1.2 UDP服务器端和客户端均只需一个套接字TCP中,套接字之间应该是-对- -的关系。若要向10个客户端提供服务,则除了守门的服务器套接字外,还需要10个服务器端套接字。但在UDP中,不管是服务器端还是客户端原创 2021-08-23 07:18:58 · 381 阅读 · 0 评论 -
四、基于TCP的服务器端/客户端
一、实现基于TCP的服务器端/客户端1.1 TCP服务端的默认函数调用顺序图4-6给出了TCP服务器端默认的函数调用顺序,绝大部分TCP服务器端都按照该顺序调用。调用socket函数创建套接字,声明并初始化地址信息结构体变量,调用bind函数向套接字分配地址。接下来介绍在这之后的几个过程。1.2 进入等待连接请求状态我们已调用bind函数给套接字分配了地址,接下来就要通过调用listen函数进人等待连接请求状态。只有调用了listen函数,客户端才能调用connect函数(若提前调用将发生错误)原创 2021-08-21 17:10:44 · 467 阅读 · 0 评论 -
十二、I/O复用介绍
一、基于I/O复用的服务器端这部分内容讨论的是并发服务器实现方法的延伸。1.1 多进程服务器端的缺点和解决方法为了构建并发服务器,只要有客户端连接请求就会创建新进程。这的确是实际操作中采用的一种方案,但并非十全十美,因为创建进程时需要付出极大代价。这需要大量的运算和内存空间,由于每个进程都具有独立的内存空间,所以相互间的数据交换也要求采用相对复杂的方法(IPC术语相对复杂的通信方法)。现在我们面临的一个问题就是:“那有何解决方案?能否在不创建进程的同时向多个客户端提供服务?”本节介绍的I/O复用就是原创 2021-07-26 20:40:04 · 245 阅读 · 0 评论 -
一、理解网络编程和套接字
一、理解网络编程和套接字1.1 构建接电话套接字套接字大致分为两种,其中,先要讨论的的TCP套接字可以比喻成电话机。实际上,电话机也是通过固定电话网完成语言数据交换的。因此,我们熟悉的固定电话与套接字实际并无太大区别。下面利用电话机讲解套接字的创建及使用方法。首先讨论用于接听的套接字创建过程:有了电话机才能打电话,接下来我们就需要准备一个电话机。下列函数创建的就是相当于电话机的套接字:#include<sys/socket.h>int socket(int domain,int t原创 2021-07-21 19:02:45 · 186 阅读 · 1 评论 -
二、套接字类型与协议设置
一、套接字协议及其数据传输特性1.1 创建套接字创建套接字的函数定义如下:#include<sys/socket.h>int socket(int domain,int type,int protocol);//成功时返回文件描述符,失败时返回-1domain:套接字中使用的协议族(protocol family)信息type:套接字数据传输类型信息protocol:计算机间通信中使用的协议信息1.2 协议族(Protocol Family)套接字通信中协议有一些分类原创 2021-06-02 15:19:08 · 177 阅读 · 0 评论 -
三、地址族与数据序列
一、分配给套接字的IP地址与端口号//待补充二、地址信息的表示2.1 表示IPv4的结构体struct sockaddr_in{ sa_family_t sin_family; //地址族(Address Family) unit16_t sin_port; //16位TCP/UDP端口号 struct in_addr sin_addr; //32位IP地址 char sin_zero[8]; //不使用}改结构体中涉及到的另一个结构体in_addr定义如下,它原创 2021-06-02 16:03:18 · 673 阅读 · 0 评论