socket共120篇 第11页
Socket最早是应用于UNIX系统的一种通信模式UNIX系统下的所有操作均是面向文件的即Socket的通信模式也是基于文件操作的ꎮ客户端和服务端均对一个文件完成“打开-读/写-关闭”的操作通过此文件传输信息完成通信。

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

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

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

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

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

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

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

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

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

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

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

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

bind()和connect()函数:绑定套接字并建立连接

bind()和connect()函数:绑定套接字并建立连接-华尔子博-奥夏网
socket() 函数用来创建套接字,确定套接字的各种属性,然后服务器端要用 bind() 函数将套接字与特定的 IP 地址和端口绑定起来,只有这样,流经该 IP 地址和端口的数据才能交给套接字处理。类似...
天山雪莲的头像-华尔子博-奥夏网天山雪莲5年前
02120

socket()函数用法详解:创建套接字

不管是 Windows 还是 Linux,都使用 socket() 函数来创建套接字。socket() 在两个平台下的参数是相同的,不同的是返回值。 Linux 中的一切都是文件,每个文件都有一个整数类型的文件描述符;soc...
子博兄的头像-华尔子博-奥夏网子博兄5年前
01960

Windows下的socket演示程序示例代码

前面我们演示了 Linux 下的 socket 程序,这节来看一下 Windows 下的 socket 程序。同样,server.cpp 为服务器端代码,client 为客户端代码。 服务器端代码 server.cpp: #include <stdio.h&...
王麻子的头像-华尔子博-奥夏网王麻子5年前
02190

Linux下的socket演示程序示例代码

和C语言教程一样,我们从一个简单的“Hello World!”程序切入 socket 编程。 本节演示了 Linux 下的代码,server.cpp 是服务器端代码,client.cpp 是客户端代码,要实现的功能是:客户端从服务...
子博网的头像-华尔子博-奥夏网子博网5年前
02100