华尔子博-记录IT人的美好生活-华尔子博-奥夏网
华尔子博-记录IT人的美好生活-华尔子博-奥夏网
华尔子博-记录IT人的美好生活-华尔子博-奥夏网
华尔子博-记录IT人的美好生活-华尔子博-奥夏网
华尔子博-记录IT人的美好生活-华尔子博-奥夏网
华尔子博-记录IT人的美好生活-华尔子博-奥夏网
最新发布第399页

socket编程实现文件传输功能详细教程

socket 文件传输程序,这是一个非常实用的例子。要实现的功能为:client 从 server 下载一个文件并保存到本地。 编写这个程序需要注意两个问题: 1) 文件大小不确定,有可能比缓冲区大很多,调...
天山雪莲的头像-华尔子博-奥夏网天山雪莲4年前
0690

shutdown()函数:优雅地断开TCP连接

shutdown()函数:优雅地断开TCP连接-华尔子博-奥夏网
调用 close()/closesocket() 函数意味着完全断开连接,即不能发送数据也不能接收数据,这种“生硬”的方式有时候会显得不太“优雅”。 上图演示了两台正在进行双向通信的主机。主机A发送完数据...
子博网的头像-华尔子博-奥夏网子博网4年前
0660

图解TCP四次握手断开连接过程详解

图解TCP四次握手断开连接过程详解-华尔子博-奥夏网
建立连接非常重要,它是数据正确传输的前提;断开连接同样重要,它让计算机释放不再使用的资源。如果连接不能正常断开,不仅会造成数据传输错误,还会导致套接字不能关闭,持续占用资源,如果并...
天山雪莲的头像-华尔子博-奥夏网天山雪莲4年前
01730

详细分析TCP数据的传输过程

详细分析TCP数据的传输过程-华尔子博-奥夏网
建立连接后,两台主机就可以相互传输数据了。如下图所示: 图1:TCP 套接字的数据交换过程 上图给出了主机A分2次(分2个数据包)向主机B传递200字节的过程。首先,主机A通过1个数据包发送100个...
天山雪莲的头像-华尔子博-奥夏网天山雪莲4年前
01511

非常详细图解TCP数据报结构以及三次握手

非常详细图解TCP数据报结构以及三次握手-华尔子博-奥夏网
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。 客户端在收发数据前要使用 connect(...
子博兄的头像-华尔子博-奥夏网5年前
01150

TCP协议的粘包问题(数据的无边界性)

socket缓冲区和数据的传递过程,可以看到数据的接收和发送是无关的,read()/recv() 函数不管数据发送了多少次,都会尽可能多的接收数据。也就是说,read()/recv() 和 write()/send() 的执行次数...
王麻子的头像-华尔子博-奥夏网王麻子5年前
0810

socket缓冲区以及阻塞模式详解

socket缓冲区以及阻塞模式详解-华尔子博-奥夏网
socket缓冲区 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。 write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目...
子博兄的头像-华尔子博-奥夏网子博兄5年前
01550

如何让服务器端持续不断地监听客户端的请求?

前面的程序,不管服务器端还是客户端,都有一个问题,就是处理完一个请求立即退出了,没有太大的实际意义。能不能像Web服务器那样一直接受客户端的请求呢?能,使用 while 循环即可。 修改前面...
子博兄的头像-华尔子博-奥夏网子博兄5年前
01990

使用socket编程实现回声客户端

所谓“回声”,是指客户端向服务器发送一条数据,服务器再将数据原样返回给客户端,就像声音一样,遇到障碍物会被“反弹回来”。 对!客户端也可以使用 write() / send() 函数向服务器发送数据...
子博兄的头像-华尔子博-奥夏网5年前
01600

send()/recv()和write()/read():发送数据和接收数据

Linux下数据的接收和发送 Linux 不区分套接字文件和普通文件,使用 write() 可以向套接字中写入数据,使用 read() 可以从套接字中读取数据。 前面我们说过,两台计算机之间的通信相当于两个套接...
王麻子的头像-华尔子博-奥夏网王麻子5年前
01820