- 博客(7)
- 收藏
- 关注
原创 网络编程学习笔记(七)优雅的断开套接字连接
基于TCP的半关闭 TCP中的断开连接过程更重要,因为连接过程中一般不会出现大的变数,但断开过程有可能发生意想不到的情况,因此应准确掌控。只有明白了下面讲的半关闭(Half-close),才能明确断开过程。单方面断开连接带来的问题 Linux的close函数和Windows的closesocket函数意味着完全断开连接。完全断开不仅指无法传输数据,而且也不能接收数据。因此,在某些情...
2018-07-23 16:47:42 335 1
原创 网络编程学习笔记(六)基于UDP的服务器端/客户端
理解UDPUDP套接字的特点UDP的作用到底是什么呢,为了提供可靠的数据传输服务,TCP在不可靠的IP层进行流控制,而UDP就缺少这种流控制机制。 流控制是区分UDP和TCP的最重要的标志。但若从TCP中除去流控制,所剩内容也屈指可数。可以说TCP的生命在于流控制。“与对方套接字连接及断开连接过程也属于流控制的一部分”。UDP内部工作原理UDP最重要的作用就是根据端口号将传到主机...
2018-07-20 17:05:14 280
原创 网络编程学习笔记(五)基于TCP的服务器端/客户端(2)
回声客户端的完美实现回声服务器端没有问题,只有回声客户端有问题。 因为回声客户端传输的是字符串,而且是通过调用write函数一次性发送的。之后还调用一次read函数,期待着接收自己传输的字符串。 回声客户端问题实际上是初级程序员经常犯的错误,其实很容易解决,因为可以提前确定接收数据的大小。 代码修改(43~53行):str_len = write(sock,message,strle...
2018-07-19 19:00:10 387
原创 网络编程学习笔记(四)基于TCP的服务器端/客户端(1)
理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字。因为TCP套接字是面向连接的,因此又称基于流(stream)的套接字。 TCP是Transmission Control Protocol(传输控制协议)的简写,意为“对数据传输过程的控制”。TCP/IP协议栈stack层 基于互联网的有效数据传输并非通过1个庞大协议解决问题,...
2018-07-18 18:36:18 390
原创 网络编程学习笔记(三)地址族与数据序列
分配给套接字的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
原创 网络编程学习笔记(一)理解网络编程和套接字
因为需要开始学习网络编程,因为之前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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人