Photon服务器引擎(一)Photon简介

使用Photon引擎进行Unity网络模块的开发(一) 使用Photon引擎进行Unity网络模块的开发 阅读详情

Photon服务器引擎(一)Photon简介

今天我们要说的就是简单的介绍一下Unity  Photon Server,看看Unity  Photon Server有什么有什么有点和缺点,人们为什么要使用它。

photon Server是一套套装的游戏伺服器,以往开发线上游戏都必需自行花费大笔的研发资金和人力先从研发游戏引擎和伺服器开始,后来慢慢的游戏引擎开始走向套装化,研发人员有许多现成的游戏引擎可以选择,像是unreal或是unity等等,接着,游戏伺服器也开始朝套装发展,市面上常见的套装Game Server有 smart fox server 、 electro server 5 、 Photon等等,这几个都是非常优秀的套装伺服器,市面上非常多的FB游戏都是利用这些套装伺服器作为通讯用平台,都是经过市场验证过的产品。

1、为什么选择Photon Server?

Photon Server的核心是用C++开发,不同 于其他伺服器采用的java,因此在效能上凌驾于其他server不少,在 Server 端 Script 采用C#语言,算是一种很容易学习的语言,Photon的Client端支援C++、.net、java、html5 、flash、Unity、mamalade、iOS、android、winphone、cocos等,市面上常见的平台全部都有支援,使用容易、效能高、支援平台多,这些优点让photon成为一个优越的套装socket server。

2、Photon Server 有什么缺点?

若要说Photon最大的缺点大概就是文件实在不是很好,市面上教学非常少 ,到目前为止也没有专门的书籍,官方的手册语焉不详而且也很没有系统,更遑论中文相关的教学了,大多在评估套装伺服器的人都是在第一步打退堂鼓而选择了其他的Server,但只要跨过门槛Photon开发起来是比其他Server容易的多,附加的Lobby Server和MMO Server功能都非常强大完善而且效能极高,官方及讨论区的服务快速而且热心,这点足以弥补资料及手册的不足了。

3、Photon 的费用很贵吗? 要如何购买?

Photon提供了100人免费版本,开发时用此版本就够了,若你的server只供公司内部使用或是小区域使用也不用花钱,只要不超过100人均使用免费版本即可,超过之后再依所需人数去官网购买,我公司买了最贵的无限制人数版也不过11万左右,比起自己研发game server省钱多了,现在Photon还提供了云端版本,有了更多的选择购买直接去官网http://www.exitgames.com/ 刷卡购买即可。

4、如何学习开发Photon Server ?

若不想用内建Server打算自行开发,最简单的方式就是下载我的教程。全中文 的教学手册,从零开始建置一个socket server,目前开放的是Photon Server 3.0 和 2.6 的教学手册,3.0教学刚完成,而2.6经过多次改版目前是第5版,除非内容有错误修正否则不会再更新2.6版本了,因为Photon 3.0 已出到RC9,已经是一个稳定版本,因此我的工作也转移到了3.0,加上3.0提供了server to server 功能,可以开发多节点server,分散式server间的沟通也变得很简单,因此目前不再对旧的2.6版本教学进行更新,请依自己的需求下载,强烈建议使用者直接使用3.0开发,因为两个版本并不相容,3.0功能强很多,而且我的教学3.0部份观念也较正确,当年写2.6时因经验不足有一些不是很好的地方。


转载于:泰课在线 http://www.taikr.com/

====================================================================================
结束。

unity使用PhotonEngine实现多人联机游戏开发(一) 这个网络引擎里面包括了PhotonCloud(光子云)、photonServer(光子服务器)、PhotonQuantum(确定性量子引擎)、PhotonVoice(光子语音),这次主要用的是PhotonCloud,这个相较于photonServer来说简单,不需要手动部署服务器端,而是更侧重于游戏设计,服务器端的管理完全是靠他们来管理,简单来说就是完全的托管。光子引擎提供了各种游戏开发平台所需要的插件,通过插件可以实现多人联机项目的开发,插件中定义了各种接口,比如进行链接服务器、加入大厅、创建房间等。 阅读详情

相关推荐

Photon服务器引擎入门教程一

Photon是一款非常不错的游戏服务端引擎,但是网上的入门教程太少了,特别是中文版的。下面一系列是对Photon Server的研究过程,如有哪个地方写的有误,望指教。 首先去https://www.photonengine.com/en/OnPremise/Download下载服务器端SDK,需要登录的,就先注册一个账号吧. 解压出来是四个文件   deploy:主要存放photon的服

天生爱赞美的博客 3079

Unity引擎网络框架Photon开发技术总结

Photon 是 Unity 网络开发领域最强大的工具之一,从基础的多人同步到复杂的 MMO 架构,再到跨平台支持和高性能优化,Photon 提供了全面的解决方案。Photon 的默认架构是基于房间的,但对于更复杂的大型多人游戏(如 MMO),可以结合 Photon Server 或 Photon Fusion 实现。Photon 提供了灵活的架构和功能,可以应用于不同类型的多人在线游戏中。,涵盖复杂多人交互场景的实现、性能优化的细节、跨平台支持的注意事项,以及更多实际开发中面临的问题和解决方案。

小宝哥Code的专栏 2854

Unity Photon服务器

unity Photon服务器(一) unity Photon服务器目前比较火,有好多商用的,国外的Photon教程有很多可是国内的教程比较少,所以我才想写一下教程,希望有用。

小白不空白的博客 1337

【PhotonEngine 学习笔记】(一)简单使用

PhotonEngine的简单使用(一)PhotonEnginePhoton SDKsSDK:SELF-HOSTED下载安装合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表...

qq_25021249的博客 2717

【Unity】【Photon】Photon产品简介 学习笔记

本文是Photon及其产品的介绍的学习笔记。

O青草O的博客 Unity和游戏制作知识分享 577

Photon服务器引擎 入门教程一 客户端连接

Photon服务器引擎 入门教程一 客户端连接服务器,客户端状态变化

使用Photon引擎进行unity网络游戏开发(一)——Photon引擎简介

使用Photon引擎进行unity网络游戏开发(一)——Photon引擎简介PhotonPUNUnity网络游戏开发 Photon引擎简介: 1. 服务器引擎: 服 务 器 引 擎 介 绍 服 务 器 引 擎 封 装 了 一 系 列 网 络 通 信 方法, 开 发 者 可 以 直 接 调 用 这 些 方 法 , 实 现 网 络 通 信 的 功 能 , 服...

770

Photon server简单的使用demo

里面包含了photon的客户端代码 和服务器dll代码 服务器dll需要放入到你下载的photon server sdk/deply 相应的文件夹下 具体详细内容请自行百度

Photon在unity中的使用

**ps:期末老师要求的一篇3000字的玩具级别论文,参考了官网和api手册。不知道有什么用,就先扔上来了。用的是writage,让word转为markdown,可能会出现一些排版或者字体上的错误。 Photon在unity中的应用 摘要:本文主要介绍了一款实时Socket开发插件,服务端可以架构在windows平台上,也可以使用PunCloud服务进行直接使用,同时也介绍了Photon插件的api以及类。并在本文中使用unity游戏引擎开发网络多人游戏,在此利用Photon在unity的接口,快速开发一款

ninesnow_c的博客 9055

从12摄像头到纯视觉:小鹏AI鹰眼方案如何用LOFIC技术省掉激光雷达?

本文深入解析小鹏汽车AI鹰眼方案如何通过LOFIC技术实现纯视觉自动驾驶,替代传统激光雷达。LOFIC摄像头在动态范围、噪声控制和HDR优化方面表现卓越,结合800万像素双目广角摄像头,达到激光雷达级测距精度。该方案不仅降低成本,还提升系统可靠性和用户体验,展示了纯视觉路线的技术潜力与边界。

t8u9v0w1x的博客 936

多相机标定与单应变换:用OpenCV实现BEV俯视全景图

多路监控画面分散在不同屏幕,难以快速理解全局空间关系。通过相机标定与畸变校正,利用单应矩阵将各视角图像投影到统一的地面坐标系,即可合成BEV鸟瞰全景图。该技术是车载360°环视系统和自动驾驶BEV感知的雏形,也适用于场地安防与移动机器人导航。基于Python+OpenCV的四路相机实现,完整覆盖标定、投影变换、多路羽化融合与实时优化,为多视角拼接和俯视全景图项目提供可复现的工程参考。

weixin_29056865的博客 248

Unity+ Photon服务器实时对战游戏——Photon服务器介绍(一)

最近打算做实时对战的类似lol的游戏,也在学习使用Photon服务器,就分享一下。这可能是一个系列文章。记录一下学习过程,分享一下经验收获。 今天先介绍一下Photon服务器是什么,可以做什么,为什么要使用它? Photon:开发多人联网游戏最轻松的方案! Photon:透过位于各地的Photon Cloud提供联机能力,快速进入多人联机游戏功能,也可以使用Photon Server来部

liang_704959721的专栏 1万+

ThingsBoard实战指南:RPC命令下发与设备交互详解

本文深入解析了ThingsBoard平台中RPC命令下发的核心机制与实战应用。通过对比客户端与服务端RPC模式,详细阐述了从仪表盘控件配置到设备端Python代码响应的完整双向交互流程,并提供了常见问题排查与进阶优化技巧,帮助开发者构建可靠、实时的物联网设备控制系统。

weixin_29168153的博客 213

Photon服务器引擎 入门教程一

Photon是个好东西,但是网上的入门教程太少了,特别是中文版的。小弟就自己琢磨吧,下面一系列是对Photon的研究过程,如有哪个地方写的有误,望请前辈指教。 首先去PhotonServer SDK下载服务器端SDK,需要登录的,就先注册一个账号吧. 解压出来是四个文件 deploy:主要存放photon的服务器控制程序和服务端Demo doc:顾名思义,文档 lib:Pho

Tonny_007的IT家园 1491

基于ESP32-S3的电子吧唧DIY:蓝牙传图、触摸交互与动态显示全解析

本文详细解析了如何利用ESP32-S3芯片DIY一个功能丰富的电子吧唧(智能徽章)。项目核心实现了通过蓝牙低功耗(BLE)接收手机小程序发送的图片,并存储至文件系统,最终在带触摸功能的TFT屏幕上进行动态显示与交互。教程涵盖了从硬件选型、软件开发环境搭建,到蓝牙通信、图片处理与触摸功能实现的完整步骤,并分享了实用的调试技巧,适合创客和嵌入式爱好者动手实践。

weixin_42510243的博客 678

C# chart以鼠标所在位置为中心进行缩放

以前都用labview做一些软件,但给出去总是会遇到版本,安装包过大等一些问题,于是想自学C#,记录一下使用过程中遇到的一些问题和解决措施,便于日后回顾。 在这个项目中需要绘制折线图,由于数据比较大,需要对图表进行缩放操作,以鼠标为中心对图表进行缩放,在网上查找了一些资料没找到我想要的,于是自己想了一个解决方案,可以基本实现,但略显繁琐,由于刚开始学习C#,对一些操作不太了解,若以后遇...

fei的博客 6363

在线玩家人数上限实时监测(Photon)

https://www.jianshu.com/p/f3f9123df1b9 https://www.jianshu.com/p/fb6db20766d9?from=groupmessage

小程小程,永不消沉 4657

scratch经典游戏主题源码分享,包含了20多款经典游戏

经典游戏案例:1、360度角度射击游戏 2、捕鱼达人 3、超级马里奥 4、超级玛丽 5、吃豆人相关 6、穿着喷气背包的海龟 7、大鱼吃小鱼 8、俄罗斯方块 9、飞机大战 10、愤怒的小鸟 11、黄金矿工 12、节奏大师 13、连连看 14、迷宫游戏 15、跑酷游戏 16、扫雷 17、水果忍者 18、坦克大战 19、推箱子 20、消除泡泡 21、保卫萝卜 22、植物大战僵尸

IT_Scratch的博客 1万+

【Unity3D】Photon环境搭建

Photon 是一个泛用性的 ScoketServer 套装软件,可用于多人在线游戏、聊天室、大厅游戏,并同时支持 Windows、Unity3D、iOS、Android、Flash 等平台。Photon 包含两个部分,一部分是 Socket 服务器,另一部分是其针对各个平台编写的 SDK,Unity3D 平台对应的 SDK 为 Photon Unity Networking(PUN)。PUN 官方介绍见→PUN简介。

little_fat_sheep 5483

突破Cloudflare 5秒盾!Python爬虫+GPT分析JS混淆实战(附完整代码)

这篇文章的核心观点其实不是“怎么过CF”,而是如何把LLM嵌入逆向工程的工作流。AI不会取代逆向工程师,但它正在重新定义逆向工程师的工作方式。过去我们80%的时间花在读懂混淆代码上,现在这部分可以外包给GPT,我们把精力集中在架构判断、异常处理和系统设计这些真正需要人类直觉的地方。技术会变,CF的防护会升级,GPT的能力也会迭代。但这种“人机协作拆解复杂问题”的方法论,比任何具体的绕过技巧都更有长期价值。参考资料Cloudflare Bot Management官方文档。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 542

R语言中5种正态性检验的方法

统计学中的t检验和方差分析等方法的应用条件是样本都来自正态总体或近似正态总体,只有符合这个条件,才能用这些方法来检验各样本所属的总体参数的差异显著性。文本向大家介绍在R语言中检验正态性的几种方法: 1、Kolmogorov-Smirnov检验 K-S检验检验单一样本是否来自某一特定分布。比如检验一组数据是否为正态分布。它的检验方法是以样本数据的累积频数分布与特定理论分布比较,若两者间的差距很小,则推论该样本取自某特定分布族。K-S检验的原假设和备择假设为: H0:样本所来自的总体分布服从

Mrrunsen的博客 2万+

使用Photon引擎进行unity网络游戏开发(四)——Photon引擎实现网络游戏逻辑

使用Photon引擎进行unity网络游戏开发(四)——Photon引擎实现网络游戏逻辑PhotonPUNUnity网络游戏开发 网络游戏逻辑处理与MasterClient 网络游戏逻辑处理: 方法一:编写Photon服务器与客户端程序 客户端传递数据之服务器,服务器完成逻辑判断,并将结果返回给客户端 方法二:编写客户端程序 游戏逻辑在客户端处...

818

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

编写自己的Photon游戏服务器(Yanlz+Unity+Photon+Server+UNet+KBEngine+Socket+纤程+UDP+立钻哥哥+==)

《编写自己的Photon游戏服务器》 版本 作者 参与者 完成日期 备注 Photon_MyServer_V01_1.0 严立钻 2019.01.28 ...

VRunSoftYanlz的博客 4537

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Unity+ Photon服务器实时对战游戏——Photon服务器介绍(三)

分享一些Photon的文章,翻译不准确的地方请多多包涵。

liang_704959721的专栏 7720

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: Unity热更新专题(九)Unity热更新实例
下一篇: Photon服务器引擎(二)socket/TCP/UDP基础及Unity聊天室的实现
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值