概述 TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。 两端通信的步骤 服务端程序,需要事先启动,等待客户端的连接。 客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。 在Java中,提供了两个类用于实现TCP通信 ...
分类:
编程语言 时间:
2020-02-08 09:27:07
阅读次数:
99
上一个blog说了C++的实现方法,但是大黑框的显示未免显得有点太过于不美观,此次具体采用QT的方式进行实现,大致上的流程是这样的: 参考上面的流程图,大致上的实现模式就是这样,但是TCP通信的全双工的形式,所以收发信息的操作对客户端还是服务端而言都i是一样的,所以我们看看代码的实现模式: 首先是T ...
分类:
编程语言 时间:
2020-01-25 15:36:45
阅读次数:
119
TCP通信机制,采用全双工(就是既可以发送数据,也可以接收数据)的形式进行客户端和服务器之间的链接,并且这是一种可靠数据传输(数据在进行收发的过程中并不会进行损失),并非UDP那样,详细细节,为什么可靠传输,可以参考《计算机网络——自顶向下》,以下代码均采用c++的模式进行实现 1.TCP Serv ...
分类:
编程语言 时间:
2020-01-21 16:01:09
阅读次数:
82
一、什么是socket? 当两台计算机需要通信的时候,往往我们使用的都是TCP去实现的,但是并不会直接去操作TCP协议,通常是通过Socket进行tcp通信。Socket是操作系统提供给开发者的一个接口,通过它,就可以实现设备之间的通信。 二、TCP是如何通信的? TCP连接和断开分别会存在3次握手 ...
分类:
其他好文 时间:
2020-01-16 23:58:25
阅读次数:
138
本实验跟踪TCP三次握手过程 实验环境:ubuntu18.04,用qemu虚拟加载linux-5.0.1内核,在MenuOS中添加简单TCP通信demo命令。 首先,先理论分析三次握手,严格的来说应该是三报文握手,并不是三次握手,因为握手只进行了一次。 第一步:Client将标志位SYN置为1,随机 ...
分类:
其他好文 时间:
2019-12-27 00:07:14
阅读次数:
100
我们知道TCP通信是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,但是效率低,它首先需要服务端开启服务,然后客户端才可以去连接,如果服务端没有开启通信服务或者连接之后再中途因为某些原因断开连接了,那么都是会通信失败的,所以我们这篇博客主要是对TCP通信加入两个机制。1,客户端开启 ...
本篇文章主要对TCP原理进行简单的分析和讨论。 TCP套接字中的I/O缓冲 前文有介绍过TCP通信数据无边界的特性,即本端一次发送的数据对端并不一定一次性接收,那剩余的数据在哪里呢? 实际上,write函数调用后并非立即传输数据,read函数调用后也并非马上接收数据。如下图所示,write函数调用瞬 ...
分类:
其他好文 时间:
2019-12-23 00:11:40
阅读次数:
72
在上一次实验通过内核搭建TCP通信的基础上,让我们来探究socket程序中的系统调用 1.源码分析(以Replyhi为例) int Replyhi() { char szBuf[MAX_BUF_LEN] = "\0"; char szReplyMsg[MAX_BUF_LEN] = "hi\0"; I ...
分类:
其他好文 时间:
2019-12-19 23:40:22
阅读次数:
146
一.TCP通信概述 TCP协议是面向连接的通信协议,在传输数据之前,发送端和接收端必须建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。 在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过三次握手。 三次握手:TCP协议中,在发送 ...
分类:
编程语言 时间:
2019-12-06 21:31:46
阅读次数:
125