当前位置: 首页 > news >正文

自学网站建设 难吗/外贸如何推广

自学网站建设 难吗,外贸如何推广,域名查询138ip,设计logo的ai软件1、概念 网络编程:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享数据、软件、数据信息等资源。 客户端(Client) 客户端是请求服务…

1、概念

网络编程:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享数据、软件、数据信息等资源。

客户端(Client)

客户端是请求服务的计算机或程序,它可以是桌面应用、移动应用或网页应用。客户端通常负责用户界面的呈现和用户输入的处理。用户通过客户端向服务器发送请求,通常包括想要访问的数据或资源的具体信息。例如,当你在浏览器中输入一个网址时,浏览器就是客户端,它向相应的服务器发送请求来获取页面信息。

服务器端(Server)

服务器端是提供服务的计算机或程序,它接收来自客户端的请求并做出响应。服务器通常负责处理数据、运行业务逻辑、存储数据和管理网络资源。响应可以是所请求的数据、处理结果,或者是其他要求的资源。例如,当服务器接收到来自浏览器的请求时,它会查找相应的网页文件并将其发送回客户端。

设备之间在网络中进行数据的传输/接收数据。 

通信两个重要的要素:IP + PORT

设备之间进行传输的时候,必须遵照一定的规则 ----> 通信协议

TCP协议:可靠的
1、建立连接:三次握手


2、释放连接:

UDP协议:不可靠的 

 

2、TCP编程 -- 创建客户端

net包
Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国

Dial函数("net"):

package main
import ("fmt""net" // 网络包
)func main(){//打印:fmt.Println("客户端启动中...")//调用Dial函数:参数:协议、IP、端口号conn,err := net.Dial("tcp","127.0.0.1:8888") //协议、IP、端口号if err != nil{// 连接失败fmt.Println("客户端连接失败:err:",err)return}fmt.Println("连接成功,conn=",conn)
}

3、TCP编程 -- 创建服务器端

进行监听:

Listen函数("net"):

package main
import ("fmt""net" // 网络包
)func main(){//打印:fmt.Println("服务器端启动中...")//进行监听:需要指定服务器端TCP协议,服务器端的IP + PORTlisten,err := net.Listen("tcp","127.0.0.1:8888") //协议、IP、端口号if err != nil{// 监听失败fmt.Println("监听失败:err:",err)return}//监听成功,等待客户端连接//循环等待客户端连接for {conn,err := listen.Accept() // 等待客户端连接if err!= nil{fmt.Println("客户端连接失败:err:",err)return}fmt.Printf("等待连接成功,conn=%v,接收到的客户端信息: %v \n",conn,conn.RemoteAddr().String())}
}

4、TCP编程 -- 连接测试

运行时注意:需要先启动服务器端,然后启动客户端进行访问:

5、TCP编程 -- 发送终端数据

通过客户端发送单行数据,然后退出:


客户端:

package main
import ("fmt""net" // 网络包"bufio" // 缓冲包"os" // 操作系统包
)func main(){//打印:fmt.Println("客户端启动中...")//调用Dial函数:参数:协议、IP、端口号conn,err := net.Dial("tcp","127.0.0.1:8888") //协议、IP、端口号if err != nil{// 连接失败fmt.Println("客户端连接失败:err:",err)return}fmt.Println("连接成功,conn=",conn)//通过客户端发送单行数据,然后退出:reader := bufio.NewReader(os.Stdin) // 读取用户输入的内容//从终端读取一行用户输入,并准备发送给服务器str, err := reader.ReadString('\n') // 读取用户输入的内容if err!= nil{fmt.Println("readString err:",err)}//发送数据:n,err := conn.Write([]byte(str)) // 发送数据if err!= nil{fmt.Println("conn.Write err:",err)}fmt.Printf("发送了%d字节的数据,并退出\n",n)
}

服务器端:

package main
import ("fmt""net" // 网络包
)func process(conn net.Conn){defer conn.Close() // 关闭连接for{//创建一个切片,用于存储读取到的客户端发送的数据buf := make([]byte,1024)//从conn连接中读取数据n,err := conn.Read(buf) // 读取数据if err!= nil{fmt.Println("conn.Read err:",err)return}//显示客户端发送的内容到服务器端的终端fmt.Print(string(buf[:n])) // 显示客户端发送的内容到服务器端的终端//向客户端回复okconn.Write([]byte("ok...\n")) // 回复客户端}
}func main(){//打印:fmt.Println("服务器端启动中...")//进行监听:需要指定服务器端TCP协议,服务器端的IP + PORTlisten,err := net.Listen("tcp","127.0.0.1:8888") //协议、IP、端口号if err != nil{// 监听失败fmt.Println("监听失败:err:",err)return}//监听成功,等待客户端连接//循环等待客户端连接for {conn,err := listen.Accept() // 等待客户端连接if err!= nil{fmt.Println("客户端连接失败:err:",err)return}else{fmt.Printf("等待连接成功,conn=%v,接收到的客户端信息: %v \n",conn,conn.RemoteAddr().String())}//准备一个协程,协程处理客户端服务请求go process(conn) // 协程处理客户端服务请求,不同的客户端连接,需要不同的协程处理}
}

相关文章:

Golang--网络编程

1、概念 网络编程:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享数据、软件、数据信息等资源。 客户端(Client) 客户端是请求服务…...

区块链技术在数字版权管理中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 区块链技术在数字版权管理中的应用 区块链技术在数字版权管理中的应用 区块链技术在数字版权管理中的应用 引言 区块链技术概述 …...

WPS单元格重复值提示设置

选中要检查的所有的单元格 设置提示效果 当出现单元格值重复时,重复的单元格就会自动变化 要修改或删除,点击...

Scala 的包及其导入

Scala使用包来创建用于模块化程序的命名空间。通过在Scala文件的顶部声明一个或多个包名称可以创建包,另一种声明包的方式是使用0,这种方式可以嵌套包,并且提供更好的范围与封装控制。对于包的导入,Scala与Java的区别之一便是&…...

架构师备考-概念背诵(软件工程)

软件工程 软件开发生命周期: 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成概要设计、详细设计、编码、测试等。软件运行和维护:就是…...

DIP switch是什么?

**‌DIP开关(DIP switch)‌,也称为指拨开关,是一种可以人工调整的开关,通常以标准双列直插封装(DIP)的形式出现。**DIP开关一般设计在印刷电路板上,配合其他电子元件使用&#xff0c…...

【销帮帮-注册_登录安全分析报告-试用页面存在安全隐患】

联通支付注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨…...

2024年下半年系统分析师论文

2024年下半年11月份系统分析师考试论文 1、静态测试工具和方法 可以从代码桌前检查,代码审查,代码走查组织文章 2、DevOps开发 可以从开发,运维,测试的自动化协作入手,跨部门沟通需求也算 3、业务流程分析 从BPR…...

【计算机网络】万字详解 UDP 和 TCP

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. UDP1.1 UDP 报文格式1.1.1 源端口/目的端口1.1.2 报文长度1.1.3 校验和 2. TCP2.1 TCP 报文结构2.2 TCP 特…...

创建者模式之【建造者模式】

建造者模式 概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。由于实现了构建和…...

电商系统中,如何解决部分商品在短时间大量访问的单一热点问题?------Range范围分片

在电商系统中,部分商品在短时间内遭受大量访问的单一热点问题,可能引发服务器压力增大、响应速度变慢、甚至系统崩溃等问题。为了解决这一问题,可以采取以下策略: 一、增加服务器容量和带宽 提升硬件性能:为了应对高…...

利用VMware workstation pro 17安装 Centos7虚拟机以及修改网卡名称

通过百度网盘分享的文件:安装虚拟机必备软件 链接:https://pan.baidu.com/s/1rbYhDh8x1hTzlSNihm49EA?pwdomxy 提取码:omxy 123网盘 https://www.123865.com/s/eXPrVv-UsKch 提取码:eNcy 先自行安装好VMware workstation pro 17 设置虚拟机…...

前端 性能优化 (图片与样式篇)

文章目录 前端能够做哪些图片优化?1、减小图片体积2、图片缓存服务工作线程 (Service Workers)缓存IndexDB缓存图片LocalStorage缓存 3、图片懒加载使用 loading"lazy" 属性 4、不同分辨率下使用不同的图片5、使用webp格式的图片6、配置图片CDN7、减少图片和动图的使…...

A021基于Spring Boot的自习室管理和预约系统设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…...

量化交易系统开发-实时行情自动化交易-Okex市场深度数据

19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来聊聊基于Okex交易所API获取市场深…...

Qt教程(006):QMainWindow主窗口

文章目录 6.1 菜单栏和工具栏6.2 状态栏6.3 铆接部件QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏 (menu bar)、多个工具栏 (tools bar)、多个错接部件 (dock widgets)、一个状态栏 (status bar)及一个中心部件 (central widget),是许多应用程序的基础,…...

测试用例的设计

测试用例的概念 什么是测试⽤例? 测试⽤例(Test Case)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。 比如我们买回来了一个新电视,要进行测…...

代码随想录训练营Day20 | 93.复原IP地址 - 78.子集 - 90.子集II

93.复原IP地址 题目链接:93.复原IP地址思路: 做法和分割回文字符串那题类似,是对字符串进行切割;本题需要多几个条件,就是每次回溯字符串的长度最多三位,字符串对应的数值必须 在[0, 255]之间,…...

[Meachines] [Medium] MonitorsThree SQLI+Cacti-CMS-RCE+Duplicati权限提升

信息收集 IP AddressOpening Ports10.10.11.30TCP:22,80 $ nmap -p- 10.10.11.30 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0) | …...

Elasticsearch专栏-4.es基本用法-查询api

es基本用法-查询api 说明查询所有某一字段匹配查询多字段查询bool查询范围查询精确查询正则匹配模糊查询结果处理 说明 es对数据的检索,总结下来就是两部分,即查询和处理。查询指的是查找符合条件的数据,包括查询所有、匹配查询、布尔查询、…...

jmeter基础04_设置外观和字体

1、设置外观 默认跟随系统风格,你可以试一试选择自己喜欢的风格。(浅色模式/深色模式…) 操作:菜单栏“选项” - “外观”,选择外观风格。 2、放缩显示比例(重启后复原) “选项” - “放大/缩小…...

重构代码之替换参数为显式方法

替换参数为显式方法 是一种重构技术,旨在通过替换方法参数来创建更清晰、更具可读性的代码。当一个方法包含标志性参数时,该方法的行为可能会根据参数的不同而发生改变。这样会导致方法的调用方式不够明确,因为调用者不一定能直观地知道每个参…...

三菱QD77MS定位模块速度限制功能

“速度限制功能”是控制中的指令速度超过“速度限制值”的情况下,将指令速度限制在“速度限制值”的设置范围内的功能。 [1]速度限制功能与各控制的关系 速度限制功能”与各控制的关系如下所示。 [3]速度限制功能的设置方法 使用“速度限制功能”时,在如…...

Axure PR 9 多级下拉选择器 设计交互

​ 大家好,我是大明同学。 Axure选择器是一种在交互设计中常用的组件,这期内容,我们来探讨Axure中多级下拉选择器设计与交互技巧。 下拉列表选择输入框元件 创建选择输入框所需的元件 1.在元件库中拖出一个矩形元件。 2.选中矩形元件&…...

Java基础使用②Java数据变量和类型+小知识点

目录 1. Java小知识点 1.1 Java注释 1.2 Java标识符命名 1.3 Java关键字 2. 字面常量和数据变量 2.1 字面常量 2.2 数据类型 3.变量 3.1 变量概念 3.2 语法格式 3.3 整型变量 3.4 浮点型变量 3.5 字符型变量 3.6 布尔型变量 3.7 类型转换 3.8 类型提升 4. 字符…...

从 HTTP 到 HTTPS 再到 HSTS:网站安全的演变与实践

近年来,随着域名劫持、信息泄漏等网络安全事件的频繁发生,网站安全变得越来越重要。这促使网络传输协议从 HTTP 发展到 HTTPS,再到 HSTS。本文将详细介绍这些协议的演变过程及其在实际应用中的重要性。 一、HTTP 协议 1.1 HTTP 简介 HTTP&…...

Qt的跨平台介绍

在实际开发中,Ubuntu 使用 Qt 编译并跨平台到 Windows 的场景并不算特别常见,但在一些特定情况下是非常有用的,尤其是在开发需要支持多个平台的跨平台应用时。这种方式的应用主要体现在以下几个方面: Linux 环境下开发 Windows 应…...

数据库DQL

DQL 语法 SELECT字段列表 FROM表名列表 WHERE条件列表 GROUP BY分组字段列表 HAVING分组后条件列表 ORDER BY排序字段列表 LIMIT分页参数 基本查询 查询多个字段 SELECT 字段1,字段2,字段3,... FROM 表名; SELECT * FROM 表名; 设置别名 SELECT 字段1 [AS 别名1],字段2 …...

Am I Isolated:一款安全态势基准测试工具

基于Rust的容器运行时扫描器作为一个容器运行,检测用户容器运行时隔离中的漏洞。 它还提供指导,帮助用户改善运行时环境,以提供更强的隔离保证。 容器的现状是它们并不包含(隔离)。 容器隔离的缺失在云原生环境中有…...

Unity性能优化 -- 性能分析工具

Stats窗口Profiler窗口Memory Profiler其他性能分析工具(Physica Debugger 窗口,Import Activity 窗口,Code Coverage 窗口,Profile Analyzer 窗口,IMGUI Debugger 窗口) Stats 统级数据窗口 game窗口 可…...