TCP 编程快速入门案例分析 | 学习笔记

简介: 快速学习 TCP 编程快速入门案例分析

开发者学堂课程【Go语言核心编程 - 面向对象、文件、单元测试、反射、TCP编程TCP 编程快速入门案例分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9778


TCP 编程快速入门案例分析

 

内容介绍

一、端口(port)-使用注意

二、tcp socket 编程的客户端和服务器端

三、服务端的处理流程

四、客户端的处理流程

五、简单的程序示意图

 

一、端口(port)-使用注意

1.在计算机机(尤其做服务器)要尽可能的少开端口

如果发现端口无故被打开,说明是存在风险的,所以要尽量少开。

2.一个端口只能被一个程序监听

3.如果使用 netstat-an 可以查看本机有哪些端口在监听

4.可以使用 netstat-anb 来查看监听端口的 pid,在结合任务管理器关闭不安全的端口

image.png

可以通过这样看到,图上前面的135端口后面只要有 LISTENING 就说明正在监听,还有443端口正在监听等等。有些图片做了一些包装,一点击开就会直接安装,会随着电脑启动而启动,一般情况下电脑的管家是不一定会认为它是一个木马,有些程序却会被封。而图中的 vmware、FeiQ、ALibaba 等程序一般是被电脑管家认可的,它如何人去验证程序是正常的,因为像这些程序是有合法标识的。

 

二、tcp socket 编程的客户端和服务器端

为了授课方法,我们将 tcp socket 编程,简称 socket 编程,下图为 Golang socket 编程中客户端和服务器的网络分布。客户端可以有多个与服务器端连接,连接后的线就代表一个 tcp 链接,一旦连接好后,就可以形成一个“管道”。

image.png

在客户端输入数据(write),在服务器端就可以读取,而且客户端是可以区分的,是如何区分的,是通过下面这个图。

image.png

 

三、服务端的处理流程

1. 监听端口

比如说先设置8888

2. 接收客户端的 tcp 链接,建立客户端和服务器端的链接

3. 创建 goroutine(可以处理多个服务器需求),处理该链接的请求(通常客户端会通过链接发送请求包)

 

四、客户端的处理流程

1. 建立与服务端的链接

2. 发送请求数据(通过终端输入),接收服务器端返回的结果数据

3. 关闭链接

 

五、简单的程序示意图

image.png

这个服务器端在端口进行监听,比若说在8888这个端口正在监听,假设有一个客户端叫 a 客户端 client.go,它向端口8888发送了一个请求,它们之间建立了一个可以相互通讯的一个管道,数据也就在管道中流动。同样的,b 客户端 client.go 也可以和端口8888进行通讯,而真正为 a、b 客户端进行通讯服务的是协程的运作,这样的好处是在有多个客户端需要服务时,可以分别开不同的协程来与客户端建成联系。

相关文章
|
网络协议 物联网 开发者
NB-IoT 通信之 TCP 收发数据 | 学习笔记
快速学习 NB-IoT 通信之 TCP 收发数据
NB-IoT 通信之 TCP 收发数据 | 学习笔记
|
6月前
|
消息中间件 网络协议 算法
【计算机网络基础篇】学习笔记系列之一《TCP/IP 网络模型》
【计算机网络基础篇】学习笔记系列之一《TCP/IP 网络模型》
76 1
|
网络协议 算法 网络性能优化
【学习笔记】TCP/IP协议详解
A、B、C类网络号各有多少个?
200 1
|
网络协议
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
|
网络协议 Linux 网络性能优化
Linux网络原理及编程(6)——第十六节 TCP可靠性保证的原理
你在应用层上想要发送一个信息,但是我在底层可能是通过发送多次、甚至有触发了超时重传等等。而站在用户的角度呢,你不用去管它,我传输层不管怎么发,反正最终把你的数据发出去就可以了。也就是说,应用层的传输和底层传输层的并不是一对一、一一对应的关系。
173 0
Linux网络原理及编程(6)——第十六节 TCP可靠性保证的原理
|
网络协议 安全 Linux
Linux网络原理及编程(5)——第十五节 TCP的连接(三次握手、四次挥手)
本节我们来介绍TCP连接的建立和断开。我们主要介绍两个过程、两个状态。
200 0
Linux网络原理及编程(5)——第十五节 TCP的连接(三次握手、四次挥手)
|
网络协议 Java 物联网
Wifi-nodeMCU-esp8266tcp 服务器创建并通过 tcp 调试助手远程控制 LED | 学习笔记
快速学习 Wifi-nodeMCU-esp8266tcp 服务器创建并通过 tcp 调试助手远程控制 LED
Wifi-nodeMCU-esp8266tcp 服务器创建并通过 tcp 调试助手远程控制 LED | 学习笔记
|
网络协议 物联网 UED
Wifi-nodeMCU-esp8266 TCP 服务器远程控制家里的灯 | 学习笔记
快速学习 Wifi-nodeMCU-esp8266 TCP 服务器远程控制家里的灯
Wifi-nodeMCU-esp8266 TCP 服务器远程控制家里的灯 | 学习笔记
|
网络协议
网络通信学习笔记(三)---TCP通信及文件上传
网络通信学习笔记(三)---TCP通信及文件上传
网络通信学习笔记(三)---TCP通信及文件上传
|
存储 网络协议 算法