从零开始ming的多人联机游戏(3)为socket通讯添加mysql数据库
macOS下visual studio C#加载mySql
本文在上一节的基础上,添加了mysql数据库的功能。client发送信息给服务器后,服务器将收到的消息保存在数据库中。
如果client发送的消息为特殊指令,服务器会调用数据库数据。例如服务器收到消息字符串为“_SHOW_ME_MESSAGE”时,
将发送服务器中保存的全部消息给client。
------------------------------------------------------------
1.安装mySql
首先下载mySql:https://dev.mysql.com/downloads/mysql/
安装的时候会设置密码。
安装后打开终端输入命令:mysql

会发现没有这条指令,原来是mySql没有添加环境变量。
根据自己的shell添加环境变量,一般大家的都是bash
那就在终端中输入指令:open ~/.bash_profile
在打开的文本末尾添加一行:PATH=$PATH:/usr/local/mysql/bin
保存后关闭文本,在终端中执行指令激活环境变量:source ~/.bash_profile
而我的shell是zsh,那就是:

然后在文本中添加:PATH=$PATH:/usr/local/mysql/bin
再关闭文本,激活环境变量:

然后输入命令:mysql -uroot -p
输入安装的时候设的密码,就进入mysql环境啦

mysql可以通过命令行指令操作,指令可以通过help;指令查看,也可以去官网看文档。
不过菜鸟教程这个网站上的介绍是中文的:https://www.runoob.com/mysql/mysql-tutorial.html
另外,最好还是安装一个可视化的工具管理你的数据库:navicat
下载地址:https://www.navicat.com.cn/products/navicat-premium
------------------------------------------------------------
2.mySql中建立数据库
安装好后,打开navicat新建mysql连接:


密码就是上面那个密码,连接名如果不写的话也会自动生成的。
然后再新建一个数据库,就叫做Notepad
在数据库中新建表:

建好之后就是这样子的,我手动添加了一条记录:1 bob nothing,这条记录什么用都没有啦

上面新建数据库添加表等操作都可以通过终端输入指令的方式完成
我们是用C#脚本访问数据库,进行添加删除等操作也都是利用C#写入mysql指令进行的。
mysql官网的文档中提供的C#,C++,PHP等多种语言的调用方法,官方说法是X协议
C#的调用协议在:https://dev.mysql.com/doc/dev/connector-net/8.0/html/connector-net-reference.htm
------------------------------------------------------------
3.为C#工程添加mySql引用
首先下载mySql的dll文件
https://dev.mysql.com/downloads/connector/net/1.0.html
选择这个:

在visual studio中打开菜单栏:项目->添加引用

添加了dll文件后在C#脚本中使用mysql函数就没问题了

------------------------------------------------------------
4.本文代码在:
https://github.com/isyiming/socket/tree/master/3.socket_mysql
这个系列的学习记录我会一直更新下去,没事的话给我比个心^~^
首先运行socket_mysql_services服务器脚本,在运行socket_mysql_client客户端脚本,发送消息给服务器

从零开始ming的多人联机游戏(3)为socket通讯添加mysql数据库的更多相关文章
- 从零开始ming的多人联机游戏--游戏客户端(1)六边形地图
打算做的小游戏是一个多人联机的策略类游戏,类似于<文明>那种 游戏的玩法并不确定,开这个坑主要是为了入门后端开发,顺便熟悉下游戏开发 这篇文章使用unity,实现了六边形单元地图的创建.后 ...
- 基于 WebRTC 创建一款多人联机游戏
本项目的目标旨在尽可能少用服务器资源的前提下研发一款在线多人游戏,同时期望在一个用户的浏览器上运行游戏,同时让另一个玩家来连接.此外还希望程序尽可能简单以便于在博客中分析. 运用的技术 在我刚接触 P ...
- 从零开始---控制台用c写俄罗斯方块游戏(1)
从零开始---控制台用c写俄罗斯方块游戏(1) 很少写博文,一来自身知识有限,二来自己知道,已经有很多这样的博文了,三就是因为懒,文笔也一般,四来刚出来工作,时间也不多 之所以写这篇博文,是因为应群里 ...
- 如何从零开始学Python?会玩游戏就行,在玩的过程就能掌握编程
现在学习编程的人很多,尤其是python编程,都列入高考了,而且因为人工智能时代的到来,编程也将是一门越来越重要的技能. 但是怎么从零开始学python比较好呢?其实,你会玩游戏就行. 从零基础开始教 ...
- 从零开始开发一款H5小游戏(二) 创造游戏世界,启动发条
本系列文章对应游戏代码已开源 Sinuous game 上一节介绍了canvas的基础用法,了解了游戏开发所要用到的API.这篇文章开始,我将介绍怎么运用这些API来完成各种各样的游戏效果.这个过程更 ...
- N人报数第M人出列游戏问题(约瑟夫问题)
这是一道华为的机试题,后来才知道也叫约瑟夫问题,题目是这样的:有n个人围成一圈,玩一个游戏,规则为将该n个人编号为1,2,......n, 从编号为1的人开始依次循环报数,报道第m的时候将第m个人从队 ...
- 【坦克大战】Unity3D多人在线游戏(泰课的坦克大战--旋转的螺丝钉)
[坦克大战]Unity3D多人在线游戏 http://www.taikr.com/my/course/937 1.NetworkManager的介绍: 说明:选择固定生成时会自动寻找有StartPos ...
- 试玩 GOWOG ,初探 OpenAI(使用 NeuroEvolution 神经进化)与 Golang 多人在线游戏开发
GOWOG: 原项目:https://github.com/giongto35/gowog 我调整过的:https://github.com/Kirk-Wang/gowog GOWOG 是一款迷你的, ...
- 从零开始开发一款H5小游戏(三) 攻守阵营,赋予粒子新的生命
本系列文章对应游戏代码已开源 Sinuous game. 每个游戏都会包含场景和角色.要实现一个游戏角色,就要清楚角色在场景中的位置,以及它的运动规律,并能通过数学表达式表现出来. 场景坐标 canv ...
随机推荐
- codeforces 1269 E K Integers
E. K Integers 题目连接:https://codeforces.com/contest/1269/problem/E 题意 给了一个排列p,你每次操作可以交换两个相邻的元素,现在问你最少操 ...
- CentOS 7 修改root密码
1.开机,在启动菜单上选择CentOS Linux (3.10**.**.x86**) 7 (Core) 按下e,进入编辑模式2.将光标一直移动到 LANG=en_US.UTF-8 后面(如果找不到, ...
- pg_dump
一.PostgreSQL提供的一个工具 pg_dump逻辑导出数据,生成sql文件或其他格式文件,pg_dump是一个客户端工具,可以远程或本地导出逻辑数据,恢复数据至导出时间点. 二.pg_dump ...
- 【软帝学院】女生不适合学习java?其实女生学java更有优势,更好就业!
女生适合学java吗?女生做IT怎么样 首先要表明我的观点,编程是不分男女,什么女生不适合学编程的说法,从客观上来说,我觉得这是一种偏见. 不少人潜意识里认为女生不适合从事IT开发岗位的工作,因为他们 ...
- Java并发编程系列-(8) JMM和底层实现原理
8. JMM和底层实现原理 8.1 线程间的通信与同步 线程之间的通信 线程的通信是指线程之间以何种机制来交换信息.在编程中,线程之间的通信机制有两种,共享内存和消息传递. 在共享内存的并发模型里,线 ...
- DEVOPS技术实践_23:判断文件下载成功作为执行条件
在实际生产中,我们经常会需要通过判断一个结果作为一个条件去执行另一个内容,比如判断一个文件是否存在,判官一个命令是否执行成功等等 现在我们选择其中一个场景进行实验,当某个目录下存在,则执行操作 1. ...
- 洛谷$P$2286 宠物收养场 $[HNOI2004]$ $splay$
正解:$splay$ 解题报告: 传送门! $splay$板子,,,? 先考虑这题要实现些什么东西嘛$QwQ$ 其实只要实现一个东西?就查询数列中与给定数字相差最小的数,显然用$splay$查询前驱后 ...
- C#泛型(Generic)
一.什么是泛型 泛型(Generic)是C#语言2.0.通用语言运行时(CLR)2.0..NET Framework2.0推出来的新特性. 泛型为.NET框架引入类型参数(Type Parameter ...
- ElementUi 表格取消全选框,用文字表示
Echarts ElementUi 表格取消全选框,用文字表示 1.先看看实现的图 一. 添加添加复选框列 <el-table v-loading="zongShipLoading&q ...
- JS获取时间戳的几种方法与区别
var today = new Date() Date.now()) Date.parse(today) today.valueOf()) today.getTime() 可以看出,第二种是精确到秒的 ...