网络编程
文章平均质量分 84
UMR小豪
这个作者很懒,什么都没留下…
展开
-
网络编程学习笔记(一)理解网络编程和套接字
因为需要开始学习网络编程,因为之前c,c++比较熟练,所以挑选了容易上手的《TCP/IP网络编程》这本书。 网络编程中接受连接请求的套接字创建过程可整理如下:#include <sys/socket.h>//用到的头文件1. 调用socket函数创建套接字 int socket(int domain, int type, int protocol);成功时...原创 2018-07-16 18:13:55 · 362 阅读 · 1 评论 -
网络编程学习笔记(九)套接字的多种可选项
套接字多种可选项我们之前写的程序都是创建好套接字后(未经特别操作)直接使用的,此时通过默认的套接字特性进行数据通信。之前的示例较为简单,无需特别操作套接字特性,但有时的确需要更改。 协议层 选项名 读取 设置 SOL_SOCKET SO_SNDBUF ✔ ✔ SOL_SOCKET SO_RCVBUF ✔ ✔ SOL_SO...原创 2018-08-22 17:17:13 · 227 阅读 · 0 评论 -
网络编程学习笔记(八)域名及网络地址
域名系统何为域名提供网络服务的服务器端也是通过IP地址区分的,但几乎不可能以非常难记的IP地址形式交换服务器端地址信息。因此,将容易记的,易于表述的域名分配并取代IP地址。DNS服务器DNS服务器实际上就是用来解析域名的,把域名的对应的IP地址找出来,返回给客户端。 默认DNS服务器收到自己无法解析的请求时,向上级DNS服务器询问。通过这种方式逐级向上传递信息,到达顶级服务器——...原创 2018-08-22 13:22:14 · 250 阅读 · 0 评论 -
网络编程学习笔记(六)基于UDP的服务器端/客户端
理解UDPUDP套接字的特点UDP的作用到底是什么呢,为了提供可靠的数据传输服务,TCP在不可靠的IP层进行流控制,而UDP就缺少这种流控制机制。 流控制是区分UDP和TCP的最重要的标志。但若从TCP中除去流控制,所剩内容也屈指可数。可以说TCP的生命在于流控制。“与对方套接字连接及断开连接过程也属于流控制的一部分”。UDP内部工作原理UDP最重要的作用就是根据端口号将传到主机...原创 2018-07-20 17:05:14 · 280 阅读 · 0 评论 -
网络编程学习笔记(五)基于TCP的服务器端/客户端(2)
回声客户端的完美实现回声服务器端没有问题,只有回声客户端有问题。 因为回声客户端传输的是字符串,而且是通过调用write函数一次性发送的。之后还调用一次read函数,期待着接收自己传输的字符串。 回声客户端问题实际上是初级程序员经常犯的错误,其实很容易解决,因为可以提前确定接收数据的大小。 代码修改(43~53行):str_len = write(sock,message,strle...原创 2018-07-19 19:00:10 · 387 阅读 · 0 评论 -
网络编程学习笔记(四)基于TCP的服务器端/客户端(1)
理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字。因为TCP套接字是面向连接的,因此又称基于流(stream)的套接字。 TCP是Transmission Control Protocol(传输控制协议)的简写,意为“对数据传输过程的控制”。TCP/IP协议栈stack层 基于互联网的有效数据传输并非通过1个庞大协议解决问题,...原创 2018-07-18 18:36:18 · 393 阅读 · 0 评论 -
网络编程学习笔记(七)优雅的断开套接字连接
基于TCP的半关闭 TCP中的断开连接过程更重要,因为连接过程中一般不会出现大的变数,但断开过程有可能发生意想不到的情况,因此应准确掌控。只有明白了下面讲的半关闭(Half-close),才能明确断开过程。单方面断开连接带来的问题 Linux的close函数和Windows的closesocket函数意味着完全断开连接。完全断开不仅指无法传输数据,而且也不能接收数据。因此,在某些情...原创 2018-07-23 16:47:42 · 335 阅读 · 1 评论 -
网络编程学习笔记(三)地址族与数据序列
分配给套接字的IP地址与端口号IP是Internet Protocol(网络协议)的简写,是为收发网络数据而分配给计算机的值。端口号并非赋予计算机的值,而是为区分程序中创建的套接字而分配给套接字的序号。网络地址(Internet Address)IP地址分为两类: IPv4:4字节地址族 IPv6:16字节地址族“向相应网络传输数据”实际上是向构成网络的路由器(Router)或...原创 2018-07-17 17:33:39 · 549 阅读 · 1 评论 -
网络编程学习笔记(二)套接字类型与协议设置
协议:协议就是为了完成数据交换而定好的约定。计算机间对话必备通信规则。 详细介绍创建套接字函数int socket(int domain, int type, int protocol);domain 套接字中使用的协议族(Protocol Family)信息type 套接字数据传输类型信息protocol 计算机间通信中使用的协议信息成功时返回文件描述符,失败时返回-1协议...原创 2018-07-17 11:59:50 · 419 阅读 · 0 评论 -
网络编程学习笔记(十)多进程服务器端
进程概念及应用利用之前所讲的内容,我们可以构建按序向第一个客户端到第一百个客户端提供服务的服务器端。当然第一个客户端不会抱怨服务器端,但如果每个客户端的平均服务时间为0.5秒,则第100个客户端会对服务器端产生相当大的不满。两种类型的服务器端1.“第一个连接请求的受理时间为0秒,第50个连接请求的受理时间为50秒,第100个连接请求的受理时间为100秒!但只要受理,服务只需1秒。” ...原创 2018-08-22 18:46:07 · 250 阅读 · 0 评论