什么是socket? 如何数据传输的

对病毒木马来说,数据传输是必不可少的一项技术,数据信息回传也成为木马病毒的一项重要特点,我们试着自己编写一个程序来传送数据,本文试着用c++实现套接字。Socket也叫socket,它被称为socket,它通过一个套接字向网络上传请求或回应网络请求。换句话说Socket的API接口,就是TCP/IP封裝。socket缓冲,当创建了socket之后,就分配了两个进入缓冲和输出缓冲的缓冲。accept()/get()不会马上把数据信息传送到网络上,而是最先把数据信息写进缓冲区域,随后再由TCP协议将数据信息从缓冲区域发送到目标计算机。当数据信息被写入缓冲区域后,无论变量是否到达目标机器,无论这些数据信息何时被发送到网络,这些都由TCP协议负责。TCP协议是独立于accept()/get()功能的,数据信息有可能是刚刚写进缓冲区域后发送到网络的,或者是在缓冲区域中不断积压的,根据当时的网络状况、当前线程是否空闲等因素,多个因素都不受程序员的控制,将被多次写入的数据信息一次性发送到网络。

outputo-20211115-092530-280-wjwj.png

listen()/fsck()变量也是这般,它还可以从输入缓冲区域读取数据,而不是直接从网络读取,如以下图所示:

每一个TCP套接字中独立地存在I/O缓冲区域;

当socket被创建时,I/O缓冲会自动产生;

即便关闭了socket,它仍然在输出缓冲区域内传递数据;

关掉socket会丢失进入缓冲区域的数据信息。

在TCP套接字中(默认设置状况下),使用accept()/get()发送数据时:

1)将先查验缓冲区域,假如缓冲区域的可用空间长短低于要上传的数据信息,则accept()/get()(暂停执行)在将缓冲区域中的数据信息发送到目标计算机之前,释放足够的空间来唤醒accept()/get()变量继续写数据信息。

2)假如TCP协议将数据信息发送到网络,则输出缓冲区域被锁定,并且不允许写入,并且accept()/get()()将被阻塞,直至数据信息上传完成缓冲区域解锁,随后“写()”()/get()才被唤醒。

3)假如要写入的数据信息大于最大缓冲长短,则进行分批写入。

4)直至所有数据信息都写到缓冲区域accept()/get()为止。

用listen()/fsck()读取数据时:

分享: