请选择 进入手机版 | 继续访问电脑版

IDC论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
IDC学院 门户 IDC教程Socket教程
订阅

Socket教程

基于UDP的服务器端和客户端
前面的文章中我们给出了几个 TCP 的例子,对于 UDP 而言,只要能理解前面的内容,实现并非难事。UDP中的服务器端和客户端没有连接UDP 不像 TCP,无需在连接状态下交换数据,因此基于 UDP 的服务器端和客户端也无需经 ...
2019-8-30 10:48
再谈UDP和TCP
TCP 是面向连接的传输协议,建立连接时要经过三次握手,断开连接时要经过四次握手,中间传输数据时也要回复 ACK 包确认,多种机制保证了数据能够正确到达,不会丢失或出错。UDP 是非连接的传输协议,没有建立连接和 ...
2019-8-30 10:47
gethostbyname()函数:通过域名获取IP地址
gethostbyname()函数:通过域名获取IP地址
客户端中直接使用 IP 地址会有很大的弊端,一旦 IP 地址变化(IP 地址会经常变动),客户端软件就会出现错误。而使用域名会方便很多,注册后的域名只要每年续费就永远属于自己的,更换 IP 地址时修改域名解析即可, ...
2019-8-30 10:47
网络数据的大小端问题
不同 CPU 中,4 字节整数 1 在内存空间的存储方式是不同的。4 字节整数 1 可用 2 进制表示如下:00000000 00000000 00000000 00000001有些 CPU 以上面的顺序存储到内存,另外一些 CPU 则以倒序存储,如下所示:00000 ...
2019-8-30 10:47
socket编程实现文件传输功能
这节我们来完成socket文件传输程序,这是一个非常实用的例子。要实现的功能为:client 从 server 下载一个文件并保存到本地。编写这个程序需要注意两个问题:1) 文件大小不确定,有可能比缓冲区大很多,调用一次 wri ...
2019-8-30 10:46
shutdown()函数:优雅地断开TCP连接
调用 close()/closesocket() 函数意味着完全断开连接,即不能发送数据也不能接收数据,这种“生硬”的方式有时候会显得不太“优雅”。图1:close()/closesocket() 断开连接上图演示了两台正在进行双向通信的主机。主 ...
2019-8-30 10:46
图解TCP四次握手断开连接
图解TCP四次握手断开连接
建立连接非常重要,它是数据正确传输的前提;断开连接同样重要,它让计算机释放不再使用的资源。如果连接不能正常断开,不仅会造成数据传输错误,还会导致套接字不能关闭,持续占用资源,如果并发量高,服务器压力堪 ...
2019-8-30 10:46
详细分析TCP数据的传输过程
详细分析TCP数据的传输过程
建立连接后,两台主机就可以相互传输数据了。如下图所示:图1:TCP 套接字的数据交换过程上图给出了主机A分2次(分2个数据包)向主机B传递200字节的过程。首先,主机A通过1个数据包发送100个字节的数据,数据包的 Se ...
2019-8-30 10:45
图解TCP数据报结构以及三次握手(非常详细)
图解TCP数据报结构以及三次握手(非常详细)
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。客户端在收发数据前要使用 connect() 函数和服务器建立连 ...
2019-8-30 10:45
TCP协议的粘包问题(数据的无边界性)
上节我们讲到了socket缓冲区和数据的传递过程,可以看到数据的接收和发送是无关的,read()/recv() 函数不管数据发送了多少次,都会尽可能多的接收数据。也就是说,read()/recv() 和 write()/send() 的执行次数可能不 ...
2019-8-30 10:45
socket缓冲区以及阻塞模式详解
socket缓冲区以及阻塞模式详解
在《socket数据的接收和发送》一节中讲到,可以使用 write()/send() 函数发送数据,使用 read()/recv() 函数接收数据,本节就来看看数据是如何传递的。socket缓冲区每个 socket 被创建后,都会分配两个缓冲区,输入 ...
2019-8-30 10:44
如何让服务器端持续监听客户端的请求?
前面的程序,不管服务器端还是客户端,都有一个问题,就是处理完一个请求立即退出了,没有太大的实际意义。能不能像Web服务器那样一直接受客户端的请求呢?能,使用 while 循环即可。修改前面的回声程序,使服务器端 ...
2019-8-30 10:44
socket编程实现回声客户端
所谓“回声”,是指客户端向服务器发送一条数据,服务器再将数据原样返回给客户端,就像声音一样,遇到障碍物会被“反弹回来”。对!客户端也可以使用 write() / send() 函数向服务器发送数据,服务器也可以使用 rea ...
2019-8-30 10:44
send()/recv()和write()/read():发送数据和接收数据
在Linux和 Windows 平台下,使用不同的函数发送和接收socket数据,下面我们分别讲解。Linux下数据的接收和发送Linux 不区分套接字文件和普通文件,使用 write() 可以向套接字中写入数据,使用 read() 可以从套接字中 ...
2019-8-30 10:43
listen()和accept()函数:让套接字进入监听状态并响应客户端请求
对于服务器端程序,使用 bind() 绑定套接字后,还需要使用 listen() 函数让套接字进入被动监听状态,再调用 accept() 函数,就可以随时响应客户端的请求了。listen() 函数通过 listen() 函数可以让套接字进入被动监 ...
2019-8-30 10:43
12下一页

Archiver|手机版|小黑屋|IDC学院  

GMT+8, 2020-8-10 15:30 , Processed in 0.023083 second(s), 2 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部