网络编程
阿创有点忙_
本人QQ:1434218274
欢迎进行学术讨论!
展开
-
网络编程——TCP状态转换图详解
在前面,已经介绍了TCP协议的三路握手和四次挥手。如下图所示,TCP通信过程包括三个步骤:建立TCP连接通道(三次握手)、数据传输、断开TCP连接通道(四次挥手)。 这里进一步探究TCP三路握手和四次挥手过程中的状态变迁以及数据传输过程。先看TCP状态状态转换图。 上半部分是TCP三路握手过程的状态变迁,下半部分是TCP四次挥手过程的状态变迁。 CLOSED:起始点,在超时或者连接关闭时候进...原创 2020-01-29 16:12:00 · 265 阅读 · 0 评论 -
网络编程——TCP通讯时序
TCP三次握手 客户进程发出连接请求报文段,此时首部同步为SYN=1,同时选择一个初始序号seq=x,TCP规定,SYN=1时报文段不能携带数据,但要小号一个序号,此时客户进程进入SYN_SENT(同步发送)状态; 服务进程接收到客户进程发送的连接请求报文段,如果同意建立连接,在确认报文段中SYN=1,ACK=1,同时选择一个初始序号seq=y,确认号ack=x+1,此时同样需要消耗一个序号,然后...原创 2020-01-28 22:25:25 · 239 阅读 · 0 评论 -
网络编程——服务端实现
要求,将客户端发过来的字符串大写并打印出 代码如下: #include<sys/socket.h> #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<ctype.h> #include<arpa/inet.h> #define SERV_PORT...原创 2020-01-28 16:47:13 · 196 阅读 · 0 评论 -
网络编程——网络套接字函数
socket模型创建流程图 socket()函数 bind()函数 sockfd:这里传入文件描述符。 addr:构造出IP地址和端口号。 addrlen:sizeof( addr )长度。 返回值:成功返回0,失败返回-1,设置errno。 服务器程序所监听的网络地址和端口号通常是固定不变的,客户端程序得知服务器程序的地址和端口号后就可以向服务器发起连接,因此服务器需要bind()函...原创 2020-01-28 10:50:49 · 321 阅读 · 0 评论 -
网络编程——网络基础(三)
网络字节序 TCP/IP协议规定,网络数据必须采用大端字节序,即低地址高字节 大端:低地址存到高位,高地址存到低位 小端:低地址存到低位,高地址存到高位 为了使网络具有可移植性,使同样的C代码在大端小端计算机上编译后都能正确运行,可以调用以下函数做网络字节序和主机字节序的转换 h表示host ,n表示netwok ,l表示32位长整数 ,s表示16位短整数。 如果主机是小端字节序,这些函数...原创 2020-01-27 17:13:56 · 332 阅读 · 0 评论 -
网络编程——网络基础(二)
Socket是何方妖怪? 1.socket与进程的关系 1).socket与进程间的关系:socket 用来让一个进程和其他的进程互通信息(IPC),而Socket接口是TCP/IP网络的API接口函数。 2).进程间通信(本机内) 进程间通信(不同计算机,要联网) 2、socket与文件的关系——如何理解socket是种特殊的I/O? 1)Socket最先应用于Unix操作系统,如果了解Un...原创 2020-01-21 10:47:59 · 440 阅读 · 0 评论 -
网络编程——网络基础(一)
协议的概念 协议:从应用出发,协议可以理解为“规则”,是数据传输和数据解释的规则。 典型协议 传输层:常见的有TCP/UDP协议 应用层:常见的有HTTP协议,FTP协议 网络层:常见的有IP协议,ICMP协议,IGMP协议 网络接口层:常见的有ARP协议,RARP协议 C/S和B/S模式 C/S模式 C是英文单词“Client”的首字母,即客户端的意思,C/S就是“Client/Server...原创 2020-01-19 17:50:30 · 450 阅读 · 0 评论