网易搬砖选手

网易资深游戏服务器架构设计,分享游戏服务器,客户端,深度学习经验

  • 博客(726)
  • 资源 (92)
  • 收藏
  • 关注

原创 让你不再害怕指针

让你不再害怕指针前言:复杂类型说明要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧:int p; //这是一个普通的整型变量

2010-11-28 15:53:00 88969 13

原创 error C2011: “sockaddr_in”:“struct”类型重定义的修改办法

宏的主要作用是减少编译时间和避免命名空间污染。不过你的程序需要使用被排除的API,你则不能定义这个宏,或者需要单独包含那些特定的头文件。简洁的来说,定义以排除加密、DDE、RPC、Shell 和Windows套接字等 API,官方文档在这。#include <cderr.h> // 提供公共对话框错误代码。#include <dde.h> // 动态数据交换(DDE)管理库的定义。#include <ddeml.h> // DDE管理库的高级接口。

2024-07-22 17:01:42 51

原创 Unity射击游戏开发教程:(29)躲避敌人的子弹射击

我们检查激光是否与带有“ShotDetection”标签的游戏​​对象发生碰撞,如果是,我们需要通过创建局部变量并使用 other.GetComponentInParent 来获取 Enemy4 的句柄,因为 Dodge 方法位于脚本中附加到 Enemy 对象而不是子对象。请记住,_isDodging 仅在 0.3 秒内为 true,然后将其设置为 false,从而阻止敌人的移动。在此协程中,我们将 _isDodging 设置为 true,持续 0.3 秒,然后再将其设置为 false,因为……

2024-07-04 14:06:32 366 1

原创 Unity射击游戏开发教程:(30)如何让玩家追踪敌人

因此,我们使用 _direction 全局变量,该变量总是在更新中重新计算,并将其乘以我们的激光速度变量,该变量只是在 OnStart 之前声明的浮点变量。这是我们将使用rotationZ变量的地方,该变量在该变量上方的行中的每一帧中不断地重新计算。我们希望激光的旋转与敌人当前的旋转相匹配,因为我们已经在计算这一点,所以我们只需要告诉敌人最后使用我们之前使用的四元数欧拉进行旋转。现在我们有了玩家的位置,我们可以找出我们需要面对的方向,我们希望它出现在我们的更新中,因为玩家的位置会不断变化。

2024-06-26 17:35:52 125

原创 redis数据库备份,回档,迁移工具使用

相信很多服务器开发者或者运维同学都遇到过这样的场景,比如我要从阿里云的redis集群把数据迁移到另外一个账号下的或者另外一个云服务商的redis集群,或者单机,或者哨兵模式redis实例,那么这种情况下我推荐给大家一款非常好用的工具,可以无缝的从A集群/单机/哨兵/已有的数据库rdb文件 迁移到 B集群/单机/哨兵模式下的实例中。

2024-06-24 00:15:00 108

原创 【go从入门到精通】rpc和grpc的使用

创建我们例子的第一步是定义一个服务:一个 RPC 服务通过参数和返回类型来指定可以远程调用的方法。gRPC 通过protocol buffers来实现。我们使用 protocol buffers 接口定义语言来定义服务方法,用 protocol buffer 来定义参数和返回类型。客户端和服务端均使用服务定义生成的接口代码。这里有我们服务定义的例子,在api/api.proto 里用 protocol buffers IDL 定义的。

2024-06-18 00:15:00 1555 3

原创 【go从入门到精通】网络编程

接下来,我们需要掌握网络编程,TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网际协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议,数据像水流一样传输,会存在黏包问题。我的意思是,如果我们可以使用特定应用程序(例如 Nginx)的相同 IP: 端口打开一个套接字,我们就可以劫持内核通过该套接字发送给我们的部分请求。包还提供对 UDP 套接字的支持。

2024-06-14 00:15:00 1531 1

原创 微信小游戏推送(小游戏礼包功能)服务器端接入开发经验总结

小游戏开发者的游戏内道具,可通过接入平台「礼包系统」,在微信平台各场景发放游戏礼包。发放场景包括:游戏圈、活动运营工具、发现-游戏-福利中心、广告、搜索等道具礼包发货基于微信小游戏统一的消息推送能力,因此在使用礼包中心的发货回调时,需要开发者服务器处理好消息推送的协议。注意:MP配置消息回调地址只有1个,所有消息推送场景都会使用该通道,所以需要先根据MsgType与Event来判断消息类型,进行相应的处理。下面是发送和返回的格式:更多详情可以查看文档:小游戏礼包 | 微信开放文档。

2024-06-13 11:20:37 3662

原创 Unity射击游戏开发教程:(27)创建带有百分比的状态栏

现在,我们需要一些变量到两个将是需要具有序列化字段属性的 UI,因此我们可以在检查器中分配它们,它们将是一个图像(将是我们的填充图像)和一个文本(这将是我们的弹药)计数文本。需要一个带有 int 参数的公共方法,该参数将作为使用的数量,因此当我们射击或使用推进器时,我们可以从玩家脚本中调用它。我们可以使用状态栏,但我们需要重新填充它,这对于弹药栏和推进器栏来说是不同的,因为推进器栏是再生的。跳转到玩家脚本,因为我们将从那里调用此方法,所以我们需要获取弹药栏的句柄,以便我们可以访问我们创建的方法。

2024-06-12 10:25:30 598

原创 【go从入门到精通】精通并发编程-使用atomic管理状态和同步的无锁技术

Go 中的包sync/atomic提供了低级原子内存操作,确保状态更新以原子方式执行,而不受其他 goroutine 的干扰。在必须以原子方式完成多个进程或需要更复杂类型的同步的情况下,可能需要锁和其他同步技术。在 Go 中,原子计数器允许多个 goroutine 安全地更改共享变量,而无需使用锁或任何其他显式同步,这可确保数据完整性并避免竞争条件。大家从结果上就可以看出这差距不是一点点,当然不是所有的场景都无脑式的使用sync/atomic原子包,那我们接下来看下那些场景不适合。

2024-05-28 15:57:53 645

原创 Unity射击游戏开发教程:(28)敌人被摧毁时掉落的能量提升

然后,我们将通过从生成管理器获取电源数组来实例化电源,并传入随机数,该随机数将确定将创建哪个电源,并在敌人被摧毁的位置创建它,并保持旋转相同使用四元数并将其设置为其身份。例如,百分比机会中的元素 0 = 通电数组中的元素 0(元素 1 = 元素 1,元素 2 = 元素 2,等等)。在 OnTriggerEnter 中,这是敌人被射弹或玩家击中的地方,我们希望在敌人被摧毁之前抓住敌人的当前位置,并将其分配给我们的 powerUpSpawnPosition,这样就知道在哪里可以产生能量我们实例化它。

2024-05-28 15:56:59 200

原创 Unity射击游戏开发教程:(26)创建绕圈跑的效果

角度是我们每帧增加的角度,三角形的斜边(圆的半径)是我们的轨道距离,所以蓝线显示了当前 X 位置添加的内容。当敌人的 Y 位置移动超过停止点(即 2)且 _isMovingDown 为 true 时,我们会将当前的 X 和 Y 坐标存储在相应的变量中,并将 _isMovingDown 设置为 false,这样我们就不再向下移动,这些 X 和 Y 坐标为最终确定。我们创建了一个本地浮点值,它将包含更新时的新 X 位置,并将其设置为等于敌人停止时的 X 位置加上当前角度的 COS x 轨道距离。

2024-05-26 00:30:00 135

原创 Unity射击游戏开发教程:(25)创建具有视差效果的滚动背景

我发现了一些很棒的像素背景,它们是为滚动背景和两者的视差而制作的,因此我能够混合和匹配来制作我的背景。在游戏更新中,我们检查背景图像的位置是否低于该偏移量(背景图像耗尽之前的位置),当低于该偏移量时,我们将其重新定位回起始位置,从而创建无限循环。我们需要找到背景的 Y 位置,即背景耗尽的位置,因此我们抓取父背景图像并将其在 Y 轴上移动,直到背景即将耗尽并记下 Y 位置。我们将创建一个脚本,将背景图像向下移动,然后当它到达 Y 位置时,我们将重新定位回原始位置,以创建这个无尽的滚动背景。

2024-05-25 00:15:00 143

原创 Unity射击游戏开发教程:(24)创造不同的敌人

在这篇文章中,我们将讨论添加一个可以承受多次攻击的新敌人和一些动画来使事情变得栩栩如生。敌人没有任何移动或射击行为。这将有助于增强未来敌人的力量。我们将声明一个 int 来存储敌人可以承受的攻击数量,并将其设置为 3。首先,我们将跳转到 Enemy 脚本并使用 OnTriggerEnter2D 来检测物体何时与 Enemy 发生碰撞。如果标签是激光,我们将在 0.2 秒后摧毁激光,以便在摧毁激光之前给激光击中动画足够的时间播放。接下来,我们将命中计数减 1 并播放敌人命中动画。

2024-05-24 00:15:00 138

原创 【go从入门到精通】精通并发编程-使用扇入扇出提升多个通道之间传递数据的效率

在并发编程领域,Golang 作为一种擅长处理并发的编程语言而脱颖而出。Go 并发模型的一个关键组件是通道,它允许 goroutine 进行通信并同步其工作。在这里,我们将探讨在 Go 中的多个通道之间传递数据的技术。当需要协调不同 goroutine 之间的工作并管理数据流时,这非常有用。了解 Go 通道在我们深入研究在多个通道之间传递数据之前,让我们简要回顾一下 Go 通道是什么以及它们如何工作。大家可以反看我之前的这篇文章:Go 通道是用于 goroutine 之间通信和同步的内置原语。

2024-05-24 00:15:00 129

原创 Unity射击游戏开发教程:(23)Unity 中的跟踪导弹

在我们的游戏更新中,我们需要找到敌人的游戏对象,因此我们可以将其存储在目标变量中。现在我们已经知道了导弹到达敌人的方向,我们希望能够旋转它,使其面向目标。这需要的是当前的 Vector3,它将是transform.up(精灵的顶部),目标 Vector3(存储在我们的方向上,以及希望它在每帧之间移动的距离。如果发生碰撞时标签是“导弹”,我们就知道这是我们的导弹,我们可以输入所有摧毁敌人和导弹的代码。此时,我们有一枚正在工作的跟踪导弹,导弹将向目标旋转并同时向目标移动,但当它击中敌人时,什么也没有发生。

2024-05-23 00:15:00 115

原创 【go从入门到精通】精通并发编程-sync.Map和map

另一方面,如果我们有大量写入工作负载,多个 goroutine 频繁更新数据,我们可能需要使用互斥锁或其他同步机制来确保一次只有一个 goroutine 可以访问数据。提供内置同步,对于读取繁重的工作负载很有用,但它有一些限制,并且比非并发使用的映射慢。通过了解这两种数据结构之间的差异和权衡,我们可以为我们的特定用例选择正确的一种,并优化我们的代码以提高性能和可扩展性。映射是无序键值对的集合,其中键是唯一的,值可以是任何类型。类型是 Go 中的内置类型,它为映射提供了安全且并发的替代方案,并在。

2024-05-23 00:15:00 344

原创 Unity射击游戏开发教程:(22)快速火力提升

一旦玩家开火,我们将开火速率设置为 Time.time 的当前时间加上开火速率,这样它现在必须等待足够的时间才能再次开火。例如,如果玩家在 1 秒开火,则新的开火时间将为 1 + 开火速率,即 0.5。但是,当 Power Up 脚本调用 Rapid Fire Active 方法时,它将将该 bool 设置为 TRUE 并启动等待秒数为 5 秒的协程,这是在 bool 之前玩家可以使用连射的持续时间设置回 FALSE,这会禁用该功能,直到再次收集为止。

2024-05-22 00:15:00 106

原创 【go从入门到精通】精通并发编程-sync.Once

提炼出来的,它使用 `atomic.StoreUint32` 将值设置为 1,表示该函数已被调用,然后使用 `atomic.LoadUint32` 来查看如果需要再次调用。无论有多少个 goroutine 调用它,atomic 包都会以安全的方式执行操作,这使得 `sync.Once` 和 `resync.Once` 是安全的。利用sync.Once,我们确保了只有在第一次调用时生成素数,之后的调用都可以快速获取之前生成好的素数。这样可以避免重复计算相同的素数,提高程序的效率。

2024-05-22 00:15:00 600

原创 【go从入门到精通】精通并发编程-WaitGroup

Go 的 goroutine、通道和互斥体使得开发复杂的并发系统变得很容易。大多数问题都可以使用这三种机制来解决。正如我们前面提到的这篇文章,实际上协程是和很多知识点串起来的 , 并不是孤立的,因此在之前的这篇文章里,我将协程和channel,WaitGroup等知识点进行了综合,这篇文章又拆分来分享给大家。

2024-05-21 00:30:00 432 2

原创 Unity射击游戏开发教程:(21)健康提升

在 Player 脚本中,添加“Increase Health”方法(将其公开,以便我们可以在 Power Up 脚本中调用它),这将处理生命的变化、更新引擎损坏和 UI 管理器。使用 IF ELSE 语句,如果生命值小于最大值 3,我们会将生命值增加 1,其他情况(如果生命值超过 3)我们会将生命值设置回 3,这样就不会超过最大数量。如果我们将 2 条生命移至 3 条生命,我们将关闭左侧引擎的损坏,如果生命从 1 条生命移至 2 条,我们将关闭右侧引擎的损坏。这使伤害动画与生命保持一致。

2024-05-21 00:15:00 188

原创 如何实现比 PyTorch 还要快的置换/转置操作?

与PyTorch相比,在运行时间方面,OneFlow在fp32的情况下至少快3倍,最多可以达到3.2倍。最后一个维度不变,只交换维度1和2,那么我们可以使用更大的访问粒度来读取数据,然后进行Permute操作。以 PyTorch 为例,当数据大小为 128MB 进行 BatchTranspose 时,由于未合并访问内存,实际读取的数据量远大于写入的数据量(7-8 倍)。正如本文和之前关于CUDA优化的文章所示,内核优化有一些常用的方法,例如结合冗余来减少计算次数,调整访问粒度来提高访问效率。

2024-05-20 09:59:22 127

原创 Unity射击游戏开发教程:(20)增加护盾强度

如果它是 2,我们访问 Sprite Render 并将颜色更改为洋红色,如果它是 1,我们将其更改为红色,如果它小于或等于 0,我们关闭 Visualizer 和 Shield Active。因此,如果 ShieldActive 不等于 true,我们会将其设置为 true,设置盾牌强度(决定盾牌可以承受的攻击次数),激活盾牌可视化器并设置盾牌可视化器的颜色。护盾展示器的颜色已经是青色,但由于我们会在受到攻击时更改颜色,因此我们不希望默认为最后一个颜色,因此每次激活时都需要重置。

2024-05-20 09:53:58 98

原创 【go从入门到精通】精通并发编程-Go Mutex 互斥锁

Go 中的互斥锁是什么?编程中的并发性需要保护数据并防止进程之间的冲突。Go 的sync.Mutex 通过控制对共享资源的访问来简化这一过程。在这篇文章中,我们将探索 Go 中的互斥体,了解如何使用它们,并了解它们如何帮助防止冲突。互斥体代表互斥,有助于确保共享内容不被大量 goroutine 同时搞乱。它就像一把钥匙,一次只有一个 goroutine 可以拥有来使用代码的特殊部分。没有它,事情可能会变得混乱并出错。互斥体可以阻止这种情况发生。它们是 Go 标准同步包的一部分。Go 中的互斥锁是什么?

2024-05-17 15:38:46 1872

原创 Unity射击游戏开发教程:(19)控制生命进度条

我们不希望当前的健康状况超过最大健康状况,因此我们使用 If Then 来检查此情况,如果发生这种情况,我们会将当前值设置为最大值。在此游戏对象中,我们将添加到 UI 图像中,这些图像将作为生命值栏的填充和轮廓。回到检查器,我们将脚本附加到健康栏,将填充图像分配给填充变量并将最大值设置为我们想要的值。我们需要初始化的变量是两个整数,分别是生命值“条”的最大值和玩家生命值的当前值。对于每个UI图像,我们只需将之前上传的精灵图像拖到填充图像中,因为它是白色的,所以我们可以将颜色更改为我们想要的任何颜色。

2024-05-17 14:01:55 136

原创 Unity射击游戏开发教程:(18)添加弹药计数+补充弹药

添加简单的弹药计数我将讨论如何向游戏中添加简单的弹药计数。这将包括在 HUD 中添加弹药计数器,当弹药达到 0 时,文本会将颜色更改为红色以提醒玩家。另外,当弹药数为0时,玩家将无法再射击。让我们深入了解吧!在播放器脚本中我们需要添加一些变量。我们将创建两个公共整数,一个是最大弹药,另一个是当前弹药。下一个变量将是一个布尔值,并将跟踪玩家是否有弹药。这将在一开始就设置为 true。在开始时,我们只想确保当前弹药与最大弹药相同。

2024-05-16 00:15:00 6115

原创 【go从入门到精通】精通并发编程-channel

什么是Channel?我们把channel翻译过来叫通道,通道可以被认为是 Goroutine 用来进行通信的管道,可以使用通道从一端发送数据并从另一端接收数据。默认情况下,通信是双向的,这意味着您可以从同一通道发送和接收值,这允许 goroutine 无需显式锁或条件变量即可同步。如果 goroutine 尝试从空通道读取数据,那么它将被阻塞,程序执行将继续等待,直到收到一个值。channel定义Channel可以被定义为全双工、仅传送、仅接收,模式不同。

2024-05-16 00:15:00 2278

原创 Unity射击游戏开发教程:(17)添加推进器推进和推进器推进动画

在当前状态下,当玩家清空 ThrusterBar 时,即使 ThrusterBar 已重新生成,他们也无法再使用 Thruster,因此我需要在 RegenThrusters 协程中添加 ActivateThruster 方法。在 UseThruster 方法中,我们之前使用了 RegenThruster 协程,当调用 UseThruster 方法时,我们需要执行检查以查看 RegenThruster 协程是否正在运行,如果是,我们将停止 RegenThruster 协程,然后再次调用它。

2024-05-15 00:15:00 52

原创 Unity射击游戏开发教程:(15)添加推进器推进和推进器推进动画

现在,当我按住左 Shift 键时,玩家移动得更快,当我释放左 Shift 键时,它会恢复到原始速度。如果 Thrusters(参数)为真,它将从小型推进器转到推进器,如果为假,它将从推进器转换回小型推进器。回到 IF ELSE 状态,如果左 Shift 键按下,我们将提高速度,我们将动画器布尔值设置为 true,以便它触发大推进器动画,当释放左 Shift 键时,布尔值设置为 false 返回动画回到小推进器。当玩家按住 Shift 按钮时,速度会加快,松开 Shift 按钮时,速度会恢复到原来的速度。

2024-05-14 00:15:00 45

原创 【go从入门到精通】使用 pprof 在 Go 中进行分析

当你看到有reflect.unsafe_NewArray的时候,你要小心,这里可能存在一些内存泄露或者不安全的使用方式, 我们可以使用traces reflect.unsafe_NewArray来查看使用的地方都有哪些.越大的盒子总是会对应它的使用情况,无论是CPU、内存等,所以在上面的例子中,我们看到的。通过此基本设置,在运行应用程序时,pprof 将公开您可以与之交互的端点,以开始收集应用程序上的配置文件。命令显示特定函数的配置文件数据摘要,包括其消耗的总 CPU 时间的百分比以及调用的次数。

2024-05-14 00:15:00 347 2

原创 Unity射击游戏开发教程:(14)Unity 中的相机抖动

我们首先要确保相机支架与相机具有相同的位置,因此我们将其设为相机的子级并重置变换。相机支架将保持相机的原始位置,并且相机将在支架位置的背景下晃动。这使它保持相对于相机支架的位置,相机支架不移动,因此我们不会得到之前只有相机时所做的捕捉。现在,它是通常的transform.position,但将是transform.localPosition,它将获取游戏对象(相机)相对于父对象的位置。进入代码的核心部分,我们将使用 While 循环,并且循环将在经过的时间小于使用参数确定的摇动持续时间时运行。

2024-05-13 10:27:42 53

原创 【go从入门到精通】golang单元测试

上面的命令会将覆盖率相关的信息输出到当前文件夹下面的c.out文件中,然后我们执行go tool cover -html=c.out,使用cover工具来处理生成的记录信息,该命令会打开本地的浏览器窗口生成一个HTML报告。类型的参数b,基准测试必须要执行b.N次,这样的测试才有对照性,b.N的值是系统根据实际情况去调整的,从而保证测试的稳定性。文件中符合上述命名规则的函数,然后生成一个临时的main包用于调用相应的测试函数,然后构建并运行、报告测试结果,最后清理测试中生成的临时文件。

2024-05-13 10:22:37 1953

原创 【go从入门到精通】精通并发编程-协程goroutine

之前给大家分享了go的基础语法和代码示例。接下来不管你是否听说过,相比于传统的线程和锁机制,Go使用轻量级的协程(goroutine)和通道(channel)实现并发,使得并发性能发挥到极致。因此这篇文章算是一个介绍性的分享,让大家知道协程是什么?在分享协程之前,我们有必要回顾一下进程和线程,协程之间的关系和区别。

2024-05-11 15:02:39 1977 4

原创 Unity射击游戏开发教程:(13)如何在Unity中播放音效

我们需要获取 AudioSource 的句柄,在 On Start 中我们将获取 AudioSource 并将其分配给我们的变量。为了获得最佳实践,我们将完成 NULL 检查以确保我们获取了 AudioSource 组件,如果我们确实拥有它,我们可以将激光声音剪辑(我们已经在检查器中分配)分配给音频源,以便它能够播放。当我们发射激光时,激光音频剪辑需要播放,因此在此方法中我们将使用 AudioSource.Play() 添加它。当我们在播放器脚本的检查器中触发时,我们将分配我们想要播放的音频剪辑。

2024-05-11 15:00:14 198

原创 【go从入门到精通】go的debug调试技巧

作者简介:高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C++,go等语言开发经验,mysql,mongo,redis等数据库,设计模式和网络库开发经验,对战棋类,回合制,moba类页游,手游有丰富的架构设计和开发经验。在日常学习和开发过程中,我们会经常使用debug进行调试,为了探索各种奇奇怪怪的语法糖,为了解决一个疑难问题,为了修复一个bug...这一篇文章我将带来如何调试debug的技巧。

2024-05-09 00:15:00 1866

原创 Unity射击游戏开发教程:(12)使用后处理

例如,您可能有一个村庄,有水域,因此当相机在陆地上时您将有一个滤镜,而另一个在水中时您将有一个滤镜。此外,我们需要创建一个配置文件,并且可以通过选择“新建”轻松完成此操作,它将创建一个配置文件。现在,我们将向场景添加一个游戏对象,该对象将充当图层,并应用后处理图层。接下来,我们需要创建一个新层(“后处理”)并将其添加到我们的后处理体积中,这是我们将其附加到相机时所需要的。在后处理层中,我们将添加主摄像机并选择我们在后处理体积上创建的后处理层。让我们将后处理体积添加到相机,为此,我们将添加后处理层到相机。

2024-05-08 00:15:00 71

原创 【go从入门到精通】go命令使用

先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C++,go等语言开发经验,mysql,mongo,redis等数据库,设计模式和网络库开发经验,对战棋类,回合制,moba类页游,手游有丰富的架构设计和开发经验。

2024-05-08 00:15:00 1825

原创 Unity射击游戏开发教程:(11)制造敌人爆炸

在这种方法中,我们将使用游戏对象添加动画。这意味着,一旦敌人被实例化,敌人爆炸动画就会运行,尽管爆炸很棒,但我们希望能够控制它们何时发生。为了防止动画自动运行,我们需要创建一个空状态,因此当它开始时,它基本上转变为空,从那里我们可以控制到爆炸动画的转变。一旦我们为一个引擎创建了动画,我们就可以将动画器组件添加到另一个引擎,并将新创建的引擎故障动画拖到动画器中。然后,在 Void Start 上,我们可以获得动画组件,并且不需要找到它,因为我们已经位于 Enemy GameObject 上。

2024-05-07 00:15:00 62

原创 【go从入门到精通】由检查一个空结构体引发的思考?

先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C++,go等语言开发经验,mysql,mongo,redis等数据库,设计模式和网络库开发经验,对战棋类,回合制,moba类页游,手游有丰富的架构设计和开发经验。

2024-05-07 00:15:00 2032

原创 windows环境下cgo使用opencv和遇到的疑难问题解决

最近使用opencv在做一些ai智能化的项目,其中需要使用go来调用opencv的算法来进行一些视频流的处理,硬件环境是Debian环境,需要远程开发和调试,如果多人使用远程调试则带来不便,因此在本地我更期望使用windows环境搭建一套环境来方便开发和调试。 在搭建windows环境过程中我遇到了不少调用opencv的问题,我将在本地给大家分享下我是如何解决的:目录1.下载和编译opencv库cgo调用opencv的问题整理: 问题1:macro "CVPY_TYPE" requires 7

2024-05-06 16:35:42 191

育龄人群备孕胎次与避孕方式数据集

.育龄人群备孕胎次与避孕方式数据集.国家人口健康科学数据中心数据仓储PHDA, 育龄人群备孕胎次与避孕方式数据集收集了2010年-2014年31个省、直辖市、自治区及新疆建设兵团的备孕夫妇胎次与采用避孕方式的信息。数据资料包括基础人口学信息、孕产史信息、避孕方式、避孕措施持续使用时间及目前是否停用的信息等。本数据集可用于头胎备孕人群及二胎及以上胎次备孕人群的避孕方式横断面调査分析以及我国青龄人口避孕方式构成情况的时间变化趋势分析等。 育龄人群备孕胎次与避孕方式数据集

2024-07-25

糖尿病并发症预警数据集

糖尿病并发症预警数据集 糖尿病是一种代谢紊乱性疾病,其发病率已在全球呈持续上升的趋势。和心脑血管疾病等其他慢性非传染病一样,I型糖尿病是种多因素疾病,其危险因素包括遗传、社会、生活方式和环境等多方面。预防控制糖尿病的关键是采取综合的预防治疗措施,而评估疾病的危害程度和控制疾病的危险因素则是糖尿病防治的重要前提。因此,掌握尿病患病和死亡情况,了解其危险因素的分布及其规律,可以为采取预防和控制糖尿病发生发展、提高尿病患者生存质量的措施提供决策依据。 本数据兼容性良好,基础表格处理软件便可运行。具体数据挖掘工具依据用户需要而定 中国人民解放军总医院提供

2024-07-25

海康相机算法检测SDK的C++开发项目源码

本源码是商业化的源码,源码使用C++调用海康的SDK(支持跨平台的,本项目中包含了Win64和arm环境的SDK,如果需要支持其他系统的SDK,也可以支持,直接从官网下载对应系统版本的库,放到thirdparty\sdk目录下,有疑问无条件支持集成),源码中包含了自动解析相机的rtsp流地址(或者你自己配置相机登陆用户名和密码,host,端口),登陆相机之后,封装了调用接口API的方法,实现了获取相机能力,修改相机算法参数的功能,实现了火点检测和告警,温度检测和告警的逻辑。 本源码在开发使用中基本上就直接可以套用,在使用过程中有任何崩溃或者bug,都可以联系我,我将无偿修复解决。

2024-07-22

yolov5的人脸检测工具C++开发

yolov5的人脸检测工具C++开发

2024-06-25

【go从入门到精通】rpc和grpc的使用-客户端代码

【go从入门到精通】rpc和grpc的使用

2024-06-17

一个简单的grpc开发demo

一个简单的grpc开发demo

2024-06-17

docker配置和安装使用说明

docker配置和安装使用说明 1、docker安装与启动 2、镜像的获取与容器的使用 3、持久化容器与镜像 4.一些使用技巧

2024-06-17

aarch64-linux-gnu环境opencv4.5.5交叉编译库

opencv4.5.5交叉编译库 aarch64-linux-gnu环境,该压缩包包含了头文件和动态库,其中动态库包含软连接,对于开发者而言,可以直接引入即可,不需要再花费时间编译了。

2024-06-06

opencv跨平台编译库

本压缩包使用的是opencv4.5.5编译的,交叉编译环境为aarch64-gnu.toolchain 使用的编译器版本为:gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu 最后生成的是一个so库和include头文件,压缩包解压后保存软连接

2024-05-31

反光衣检测识别yolo模型

反光衣检测识别yolo模型

2024-05-21

yolo车辆识别检测模型

yolo车辆识别检测模型 car.bmodel 通过yolo训练得到的模型文件

2024-05-21

使Unity开发的游戏支持热更新的解决方案

JEngine 是专为 Unity 开发人员设计的开箱即用框架。它封装了强大的功能。初学者也可以快速上手,轻松创建可在运行时更新的游戏。 该master分支是开发者认为可以正常使用的最新版本,不会有太多问题。推荐使用,功能最强大(同时修复了旧版本的bug); 该0.7.x分支目前被大多数商业项目使用,它是2022年最受欢迎的版本,具有各种有用和高性能的功能,该分支将不再更新或维护(该分支有完整的文档,但官方教程视频很少); 该0.6.x分支已被大多数商业项目使用,内容完整,文档和视频充足,不会再更新或维护; 该0.5.x分支正在被一些商业项目使用,不会更新或维护; 依赖关系 ILRuntime v2.1.0 - 在运行时执行 C# 代码 YooAssets v1.4.10 - 在运行时更新资源 Unity-Reorderable-List v1.0.1 - 附加编辑器检查器工具

2024-05-15

2048微信小游戏代码下载

该程序主要难度在用户滑动屏幕时值相同的cell合并 将空格标为0(我代码中是用的""表示空格),假设棋盘如下: - 0 2 0 2 - 0 0 0 0 - 0 0 0 2 - 0 0 0 0 ### 步骤 - 通过touch相关的事件函数确定用户滑动方向 - 将棋盘的数字生成4*4的二维数组list - 根据用户滑动方向生成四个小数组,比如用户将上面的棋盘向右滑动,则四个数组为: > item[0] = [2, 0, 2, 0]; > item[1] = [0, 0, 0, 0]; >item[2] = [2, 0, 0, 0]; // 注意是2000而不是0002,因为是向右滑动要从右边开始 > item[3] = [0, 0, 0, 0]; - 接下来就是滑动时合并,拿item[0]举例,如果是2020,向右滑动我们应该成为0004 >- 将item[0]的所有0移到末尾变为2200,遍历item将相同的下标值相加,后面的数置为0 >- 2020 ---> 2200 ---> 4200 ----> 4000 - 如法炮制就可以实现滑动时合并

2024-05-15

基于spark的大规模社交数据分析工具

gbbd是一个基于spark的大规模社交数据分析工具,提供了FR布局算法和k-friend layout算法(原创),并提供了相应的统计分析和聚类工具。详情请看作品说明文档和系统安装文档。

2024-05-15

wwPDB 蛋白质结构数据集下载

超神经 Hyper.AI https://hyper.ai 是科技实验媒体,专注报道人工智能与其适用场景。致力于推动中文领域对机器智能的认知与普及,探讨机器智能的对社会的影响。超神经为提高科研效率,提供大陆范围内最快最全的公开数据集下载节点、人工智能百科词条等多个产品,服务产业相关从业者和科研院所的师生。 ## 关于数据集 - 数据集名称:wwPDB 蛋白质结构数据集(全球版) - 数据预估大小(单位 GB):没有数据 - 简介:PDB 蛋白质结构数据集,是一个专门收录蛋白质及核酸的三维结构资料的数据库,拥有十分悠久的历史,由美国布鲁克黑文国家实验室的 Walter Hamilton 于 1971 年起开始构建收集。 PDB 数据库中信息主要包含:原子坐标,蛋白质结构的其他信息,以及除蛋白以外生物大分子的信息。可以在 PDB 数据库查找核糖体、致癌基因、药物靶标,甚至整

2024-05-13

基于多尺度特征融合的人脸照片 – 素描合成

基于多尺度特征融合的人脸照片 – 素描合成 梁昌城1, 王楠楠1*, 朱明瑞1*, 杨曦1, 李洁1, 高新波2 1. 西安电子科技大学综合业务网理论及关键技术国家重点实验室, 西安 710071 2. 重庆邮电大学重庆市图像认知重点实验室, 重庆 400065 * 通信作者. E-mail: nnwang@xidian.edu.cn, mrzhu@xidian.edu.cn 收稿日期: 2021–03–10; 修回日期: 2021–04–30; 接受日期: 2021–05–28; 网络出版日期: 2022–01–25

2024-05-13

基于hiredis封装的redis哨兵模式的C++库(跨平台支持)

这个是我自己用C++写的基于hiredis封装的redis哨兵模式的库,支持windows/linux 跨平台编译, windows下是静态库,linux编译出来是动态库so 该库功能包含了redis哨兵模式的服务启动,关闭,几乎涵盖了所有常用的redis操作,如果有缺少,你可以很方便的添加方法即可,当redis一个节点断开连接后会自动选举产生一个新的连接。 该库已经在我的多款爆款游戏中作为服务器的基础库运行,非常稳定,如有bug,或编译中遇到任何问题,无偿提供服务支持。

2024-05-11

vhdr格式运动意象脑电图EEG数据集下载

该数据集包含运动意象脑电图 (EEG) 数据,该数据由 ELKH 自然科学研究中心 (TTK) 记录。在 9 名自愿健康受试者的帮助下,总共进行了 25 项实验。 对于 EEG 数据记录,遵循 10-20 国际惯例,使用 64 通道 ActiChamp 放大器系统(Brain Products GmbH,Gliching,德国)与 actiCAP EEG 帽一起使用。 POz 用作参比电极,因此有 63 个电极可用于数据采集。在实验准备过程中,测量了脑电图电极的阻抗并保持在30kΩ以下,并将其阻抗值与记录的脑电图文件一起保存。 受试者坐在 LG Flatron L204WT-SF 20 英寸宽屏液晶显示器前,观看距离约为 70-130 厘米。对于实验地点,我们使用了配备法拉第笼屏蔽的房间,但也使用了没有电屏蔽的普通房间。通过使用常规的、非屏蔽的房间,我们的目标是创造一个与 Cybathlon 比赛中类似的环境。 原始脑电图信号是用 BrainVision Recorder 程序(版本:1.22.0001)记录的,无需额外的软件或硬件过滤器。

2024-05-06

运动意象脑电图EEG语言数据集下载

EEG 语言数据集的详细信息: 支持多种格式,如下: eeg ehst hfinf vhdr vmrk格式, 该脑电图数据集由Irina Siminova 等人获取。在一项研究中,研究了以图片(白色背景上的黑线图)、视觉显示的文本或听觉呈现的单词呈现的刺激的语义处理。刺激由来自三个语义类别的概念组成:两个相关类别(动物、工具)和一个因主题(衣服或蔬菜)而异的任务类 所有主要刺激均用 3 位数字编码,即“Sxxx”: 第一个数字编码任务/无任务:1表示非目标语义类别:动物、工具,2表示目标语义类别:服装。受试者的任务是按下按钮以响应服装项目,主要研究中没有分析这些目标。 第二个数字编码物品,1 到 4代表动物(牛、熊、狮子、猿),5 到 8代表工具(斧头、剪刀、梳子、笔)。还有 4 个目标物品(服装)。 第三位数字编码刺激形式:1表示书面文字,2表示图片,3表示口头文字。

2024-05-06

MinGW x86-64-8.1.0-release-posix-seh-rt-v6-rev0

MinGW-W64 GCC-8.1.0版本的x86_64-posix-seh, 现在直接通过sourceforge.net几乎很难下载下来了,这里提供下可以使用的版本

2024-05-06

opencv4.5.5交叉编译库下载

平台使用的是linux,修改 ./aarch64-gnu.toolchain.cmake 使用的是gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu的gcc,g++编译器,最终生成opencv.pc文件,include头文件和lib动态库文件

2024-04-29

gcc-linaro-6.3.1-2017.05-x86-64-aarch64-linux-gnu

gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu 库,主要是做一些交叉编译使用,希望能帮助到各位

2024-04-29

动手学深度学习-很详细的基础教程

本书将全⾯介绍深度学习从模型构造到模型训练的⽅⽅⾯⾯,以及它们在计算机视觉和⾃然语⾔处理中的应⽤。我们不仅将阐述算法原理,还将基于ApacheMXNet对算法进⾏实现,并实际运⾏它们。本书的每⼀节都是⼀个Jupyter记事本。它将⽂字、公式、图像、代码和运⾏结果结合在了⼀起。读者不但能直接阅读它们,而且可以运⾏它们以获得交互式的学习体验。

2024-04-26

移动端经验速递手册下载

本文档针对移动前端开发,包括 Hybrid 里面的web页面,非 Native 应用。 概要 本文档针对移动前端开发,包括 Hybrid 里面的web页面,非 Native 应用。 适用 所有经验适用于:iOS6.0+, Android4.0+ 目录 兼容性 CSS伪类:active 清除iOS输入框内阴影 修正iOS输入框禁用文本色 Samsung S4圆角Bug 边框圆角致背景溢出 一个失败的圆(圆角) 不要使用伪元素动画 :checked与兄弟选择符一起使用的bug 为什么flex布局不生效 为什么小于12px字号不生效 chrome中body使用rem失效 不要对html设置百分比大小的字号 经验 禁止保存或拷贝图像 取消touch高亮 禁止选中内容 快速回弹滚动 设置添加到主屏幕的Web App标题 设置添加到主屏幕的Web App图标 添加到主屏幕时隐藏地址栏和状态栏(即全屏) 添加到主屏幕时设置系统顶栏颜色 电话号码识别 邮箱地址识别 关闭iOS键盘首字母自动大写 关闭iOS输入自动修正 禁止文本缩放 性能优化

2024-04-22

GeoLite2-City.mmdb数据库下载

GeoLite2-City.mmdb更新到20240417日 是一个由 MaxMind(现在是 GeoLite 的一部分,归 MaxMind 的母公司 MaxMind, Inc. 所有)发布的数据库文件,用于地理位置查找和 IP 地址到地理位置的映射。GeoLite2-City 数据库包含了 IP 地址范围到地理位置(如国家、地区、城市、ISP、域名等)的映射。 该文件是 MaxMind 的 GeoLite2 系列数据库的一部分,特别是针对那些希望使用免费数据库进行 IP 地理位置查找的组织和个人。GeoLite2-City 数据库比 GeoIP2 City 数据库小,并且更新频率较低,但它仍然提供了相当准确的地理位置数据。 文件扩展名 .mmdb 指的是 MaxMind 的新二进制格式,它用于存储 IP 地址到地理位置的映射。与传统的 GeoIP 数据库格式相比,.mmdb 格式提供了更快的查询速度和更高的精度。

2024-04-17

GeoLite2-Country.mmdb库下载

GeoLite2 City库下载 数据库更新到了2024年4月16日 GeoLite2-Country.mmdb 是一个IP地理位置数据库文件,它包含了IP地址到国家级别的地理位置映射信息。这个数据库文件由MaxMind公司开发和维护,是GeoLite2系列数据库的一部分。GeoLite2-Country.mmdb数据库文件可以用于各种应用程序和系统中,以根据IP地址获取用户的地理位置信息,例如用于网站分析、地理位置定位、安全监控等场景1。 此外,GeoLite2-Country.mmdb文件是一个二进制文件,需要使用专门的库或工具进行读取和解析,例如MaxMind提供的GeoIP2库或第三方库如geoip2等。在使用该文件之前,需要先将其下载并导入到相应的系统或应用程序中,用法可以参考 https://backend.blog.csdn.net/article/details/137069810

2024-04-16

Sora AI工作原理和主要特点介绍

在当今快节奏的数字时代,人工智能 (AI) 的进步不断重塑我们生活的各个方面。从医疗保健到金融,人工智能技术在优化流程和增强用户体验方面取得了显着的进步。人工智能掀起巨大波澜的领域之一是教育领域,特别是随着 Sora AI 等平台的出现。 ### Sora AI简介 ### Sora AI 的工作原理 ### Sora AI 的主要特点 ### Sora AI 的优势 ### Sora AI 的应用场景

2024-04-16

使用Suno AI创作精彩歌曲教程

Suno AI:如何使用应用程序通过 AI 创作精彩歌曲 要创建歌曲,我需要先创建一个 Suno 帐户,通过我的 Google 帐户登录。我到达了一个可以创作我的第一首歌的页面。 “歌曲描述”字段中有一个有用的提示示例,但不幸的是我的第一个提示 - “一首关于九十年代嘻哈风格的纽约市的伟大歌曲” - 不起作用,触发了版权提示。但是,当我第二次运行完全相同的提示时,会生成一首歌曲:

2024-04-15

2024 年 AI(人工智能)开发者路线指导

大家好,如果你想在 2024 年成为一名人工智能工程师,或者想学习人工智能、生成式人工智能和即时工程,那么你正在思考正确的方向。 越来越多的公司要求他们的员工学习生成式人工智能,而且这种情况只会增加。当您必须向现有应用程序添加人工智能功能以增强它们时,人工智能集成将成为下一件大事,这就是为什么在 2024 年学习人工智能技能是一个好主意。 但问题来了怎么办?好吧,别担心,我会告诉你的。过去,我分享过最好的人工智能课程和学习 ChatGPT 的最佳课程,这是最流行的生成式人工智能示例和法学硕士之一,在本文中我将逐步教您掌握人工智能开发和集成所需的技能。

2024-04-15

什么是网络钓鱼和应对策略

网络安全是当今影响到每个人的热门话题 - - 从政府和企业到互联网的普通用户。我们希望这一系列全面的提取支付协议文章将帮助您保持网络安全。 如网络安全是许多宏观议程上的一个强制性议题,包括政府的议程。网络安全涉及的技术,流程和管控均有一使用 - - 保护系统,网络和数据免受网络攻击。而高效的网络安全降低了网络攻击的概率。它可以保护机构和个人免受系统,网络和技术的非法开发。然而,大型组织并不是唯一面临风险的组织。这种事件每天都在发生,我们会听到有人通过伪装成电子通信中的看似一个值得信赖的实体以试图获得敏感信息,如用户名,密码,信用卡信息(包括钱),而这种行为往往出于恶意。我们称其为“网络钓鱼”。并且,如果不采取防范措施,可能会导致所有参与方损失。

2024-04-08

基于Golang开发的棋牌游戏服务端demo(推筒子游戏)

主要服务 Hall:大厅服务 PushBobbi:推筒子游戏服务 Robot:机器人服务 环境搭建 架构使用go mod构建环境 基础安装 将工程代码克隆在GOPATH/src目录下 确保GOPATH和GOROOT的系统环境变量已经正确配置 配置go mod的环境变量 Mac或Linux export GOPROXY=https://goproxy.io export GO111MODULE=on Windows set GOPROXY=https://goproxy.io set GO111MODULE=on 在工程目录下执行go mod tidy 运行程序 安装Go1.16 设置GOROOT和GOPATH(1.6开始不需要设置GOPATH) 设置环境变量 根据layout.json创建layout_dev.json,其中common_config与must服务不变,其他XX_server服务里面内容都放在新的all_server服务里面 因为本地测试需要将所有服务都同时启动,rancher上面根据环境变量运行服务 例如: "all_server":{ "

2024-04-07

Unity制作的2D动作游戏

Unity开发的制作的2D动作游戏,类似于超级马里奥的经典闯关游戏。 操作方法 钥匙 内容 方向键 移动 空格键 跳、二段跳、踢墙 解压下载的文件 在Unity中打开提取的“techbook-unity-2d-action-game-master”文件夹 在解压的文件夹中打开“proj.exe”

2024-04-07

linux常用命令手册.doc

linux常用命令大全

2024-04-07

让你不再害怕指针-第二版

大家好,我是这本书的原创作者,最早一版本的电子书排版不是特别好看,我现在已经重新排版 让你不再害怕指针

2024-04-03

城市交通和车辆行为数据集

关于数据集 城市交通和车辆行为数据集是与城市交通和车辆行为相关的各种因素的数据集合。以下是数据集中每列的描述: 1. 城市:收集数据的城市名称。 2. 车辆类型:交通中涉及的车辆类型(例如汽车、卡车、公共汽车、摩托车)。 3. 天气:数据收集时的主要天气状况(例如晴天、下雨、下雪)。 4. 经济状况:城市普遍的经济状况(例如,繁荣、衰退、稳定)。 5. 星期几:收集数据的星期几(例如星期一、星期二等)。 6. 一天中的小时:收集数据的时间,通常以 24 小时格式表示。 7. 速度:交通中车辆的速度,以英里每小时 (mph) 或公里每小时 (km/h) 为单位。 8. 是否是高峰时段:二进制指示符(0 或 1),指示是否在高峰时段收集数据。 9. 发生随机事件:二进制指示符(0 或1),指示在数据收集期间是否发生任何随机事件(例如事故、道路封闭)。 10. 能源消耗:车辆的能源消耗,通常以燃料消耗或用电量来衡量。 该数据集可用于多种目的,例如分析交通模式、研究天气和经济条件对交通的影响、评估能源消耗趋势以及预测交通拥堵。研究人员和交通规划者可能会发现该数据集对于理解和改善城市交通非常

2024-04-01

肥胖风险数据集csv下载

关于数据集 概述: 该 Kaggle 数据集提供了个人的全面信息,包括性别、年龄、身高、体重、超重家族史、饮食习惯、体力活动、交通方式以及相应的肥胖水平等关键属性。该数据集经过精心策划,用于健康和生活方式研究领域的研究和分析。 标签: 性别 年龄 身高 体重 Family_history_with_overweight FAVC(经常食用高热量食物) FCVC(食用蔬菜的频率) NCP(主餐次数) CAEC(两餐之间的食物消耗量) SMOKE CH2O(每日饮水量) SCC(热量饮料消耗量) ) FAF(体力活动频率) TUE(使用技术设备的时间) CALC(酒精消耗) MTRANS(交通方式) 0be1dad(代表肥胖水平的目标变量)

2024-04-01

印度犯罪数据集2001-2013下载

数据集说明: 该数据集包含印度的犯罪统计数据,按年度 (YEAR) 按州/联邦直辖区 (STATE/UT) 和地区 (DISTRICT) 分类。它提供了对印度不同地区报告的各种犯罪活动的见解。 列: 州/犹他州:报告犯罪的州或联邦直辖区。 地区:州/UT 内报告犯罪的地区。 年份:报告犯罪的年份。 谋杀:报告的谋杀案件数量。 谋杀未遂:报告的谋杀未遂案件数量。 不构成谋杀的过失杀人罪:报告的不构成谋杀的过失杀人案数量。 强奸:报告的强奸案件数量。 拘留期间强奸:报告的拘留期间强奸案件数量。 其他强奸:除拘留期间强奸外报告的强奸案件数量。 绑架和绑架:报告的绑架和绑架案件数量。 绑架和诱拐妇女和女童:已报告的绑架和诱拐妇女和女童案件的数量。 绑架和绑架他人:报告的绑架和绑架他人案件的数量。 DACOITY:报告的 DACOITY 病例数。 DACOITY 的准备和组装:与 dacoity 的准备和组装相关的报告案例数量。 抢劫:报告的抢劫案件数量。 入室盗窃:报告的入室盗窃案件数量。 盗窃:报告的盗窃案件数量。 汽车盗窃:报告的汽车盗窃案件数量。 其他盗窃:报告的其他盗窃案件的数量。

2024-04-01

keil5安装教程下载和安装注册文档

keil5安装教程 Keil 5软件简介: Keil 5是一款非常友好和强大的C语言软件开发系统。Keil软件为用户提供清晰直观的操作界面,相对其他C语言开发软件而言,Keil实用更加便捷。Keil具备编译器、安装包和调试跟踪,其主要新增包管理器功能,支持LWIP。而且Keil的SWD下载速度也是KEIL4的5倍,给用户带来了全新的感受和体验。 Keil 5软件下载: [软件全称]:Keil uVision 5.18 MDK版 [软件大小]:299MB [软件语言]:中文 [安装环境]:Win7/Win8/Win10/Win11

2024-04-01

UDP原理详解和代码示例

UDP层,这一层属于传输层应用,UDP协 议基于IP层,而UDP程序基于UDP协议。其实UDP无所谓什么协议,它没有自己的状态 机,仅仅是在IP层上做了一些封装,不保证报文能准确到达,没有请求应答机制,所有的 行为,和IP应用协议一样。只不过,它多了一个port的概念,此 port不是指主机上的网络 端口,而是从操作系统内核的角度看到的应用程序“标识"。我们都知道如何调用操作系统的 接口,但操作系统是如何“调用”应用程序的呢?在现在的PC机操作系统中,这是无法办 到的。 于是人们为应用程序设置一个标识,内核根据这个标识确定是哪一个应用程序曾经给它 发过请求,然后把数据发给应用程序,这样就避兔操作系统把所有的数据发给所有在等特数 据的应用程序,从操作系统的角度看,这个标识就是一个个的端口,比如你在网络上和一个妹子撩骚,同时也和一个教授讨论问题。你当然不希望发给妹子的话教授也能收到,这就是传输层网络应用中加入的port概念。在IP层,每个应用的标识就是中地址,内核根据I来 处理报文,要么给本机,要么转给别人,在UDP和TCP层,不仅要有IP地址,而且还要port 号

2024-03-29

纽约股票交易所标准普尔500股票数据集合

纽约股票交易所标准普尔500股票数据集合 2010年到2016年的标准普尔50 0股票数据。、fundamentals.csv,prices.csv, securities.csv prices-split-adjusted.csv 一共 四个文件,解压后即可获得这四个文件

2024-03-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除