- 博客(40)
- 收藏
- 关注
原创 【负载均衡式在线OJ】 数据库
将来我们可以把这三个编译服务部署到三台不同的机器上,然后我们只需要改我们的配置文件,把ip地址和端口号一改,然后oj_server就知道了,然后他就可以负载均衡式的去请求我们的编译服务。接下来访问数据库,我们本来需要数据库官方提供的一些链接去连接数据库,有可能你的系统中,已经默认安装了mysql的开发包。我们的oj_server基于MVC模式的,和数据打交道的只有一个oj_model模块,只需要更改该文件即可!因为当前在我们后端,连接的服务端有三台,所以接下来,复制三个SSH渠道。
2023-05-21 19:35:12
944
原创 【mysql】库的操作+表的操作
备份mysqldump - P3306 - u root - p 密码 - B 数据库名 > 数据库备份存储的文件路径示例:将mytest库备份到文件(退出连接)
2023-05-21 11:33:06
521
原创 【http】 get方法和Post方法区别;http和https
通过url传参,回显输入的私密信息,不够私密:通过正文传参,不会回显,一般私密性有保证。一般如果上传的图片,音频比较大,推荐Post方法,比较容易解析。
2023-04-17 11:19:03
752
原创 【Linunx报错】程序在运行时无法找到一个名为 “libctemplate.so.3“ 的共享库文件
第一个报错:这个错误信息提示你的程序在运行时无法找到一个名为 “libctemplate.so.3” 的共享库文件,因此无法加载该库文件。这可能是因为该库文件未被正确安装或未被正确配置。要解决这个问题,你可以尝试以下几个步骤:1.检查该库文件是否已经安装。你可以使用以下命令来搜索该库文件:如果该库文件已经安装,它应该会显示在搜索结果中。如果没有找到该库文件,则需要安装它。2.如果该库文件已经安装,你可以尝试将其路径添加到 LD_LIBRARY_PATH 环境变量中。你可以使用以下命令将该库文件路径添加到
2023-04-15 10:59:04
1184
1
原创 【网络版计算器】
如果我们需要实现一个服务器版的加法器. 我们需要客户端把要计算的两个加数发过去, 然后由服务器进行计算, 最后再把结果返回给客户端约定方案一:1.客户端发送一个形如"1+1"的字符串;2.这个字符串中有两个操作数, 都是整形;3.两个数字之间会有一个字符是运算符,运算符只能是 +;4.数字和运算符之间没有空格;约定方案二:1.定义结构体来表示我们需要交互的信息;2.发送数据时将这个结构体按照一个规则转换成字符串,接收到数据的时候再按照相同的规则把字符串转化回结构体;
2023-04-08 13:22:48
337
原创 【TCP网络程序】线程池版本的 TCP 服务器
在start()函数中,使用了线程池来处理多个客户端的连接请求。在一个无限循环中,服务器不断尝试从监听socket中accept新的连接,如果成功则创建一个Task任务(Task类的构造函数参数包括这个连接的socket描述符、客户端IP地址和端口号,以及处理该连接请求的回调函数)并将其提交给线程池进行处理。处理过程中会调用Task任务中保存的回调函数来处理客户端请求。如果accept失败,则记录错误信息并继续等待下一个连接请求。这段代码是一个 TCP 服务器的实现。
2023-04-06 13:04:28
204
原创 【TCP网络程序】简单的TCP服务器实现
start()函数是服务器的主要逻辑,其中使用了accept()函数等待客户端的连接请求,如果有新的连接请求到来,就创建一个子进程为其提供服务。子进程中调用service()函数来处理客户端请求,该函数中使用read()函数读取客户端发送过来的数据,并使用write()函数将其回传给客户端。如果客户端关闭了连接,子进程会退出并成为一个僵尸进程,父进程通过waitpid()函数来回收子进程资源。这段代码是一个简单的TCP服务器实现,可以监听指定的端口,接受客户端的连接请求,并为每个连接提供服务。
2023-04-06 12:44:14
269
原创 【简单的UDP网络程序】实现一个简单的英译汉的功能
在该代码中,Handler类型定义了handler的函数签名,使用了std::function模板,它支持函数指针、仿函数和lambda表达式等多种函数对象类型。UdpServer类提供了一个Start方法,它接受三个参数:ip、port和handler,分别表示服务器绑定的IP地址、端口号和请求处理函数。该段代码定义了一个UDP服务器类UdpServer,它包含了一个成员变量sock_,它是一个UdpSocket对象,用于管理UDP套接字的创建、绑定、发送和接收操作。
2023-04-05 22:25:25
174
原创 【负载均衡式在线OJ】负载均衡模块
实现了可以给我们提供负载均衡功能的主机machine(就是一个machine对应一个后端服务),你可以在一台机器上部署三个编译服务,那么就对应三个machine,你将来可以在100个机器上部署200个编译服务,每台机器两个,那么你就有200个machine,所以它是一个逻辑上的概念。然后,它提供的就是更新自己的负载,减少自己的负载,还有获取自己的负载接下来,我们的负载均衡器loadBlance做的就是:根据配置文件把所有我们曾经预配置的主机和端口搞进来,搞进来之后把他push到machines里面。
2023-03-28 22:30:01
1015
原创 【负载均衡式在线OJ】实现编译,运行,测试等功能
这两个服务器之间采用网络套接字的方式实现互相通信,这样就可以将编译模块部署在服务器后端的多台机器上,而我们的OJ_server只有一台,这样我们的服务器OJ_server会负载均衡地去选择后端的编译服务,让我们能够以集群处理能力的方式去对外输出我们的在线OJ服务,所以我们这是一个完全可扩展的项目。聚焦在服务器当中,当用户将代码提交上来之后,把用户提交的代码在我们的服务器上面形成临时文件,并且进行编译和运行,得到运行结果;要清楚某个文件,就要先确定这个文件是否存在,之前写过判断文件是否存在的函数,直接用。
2023-03-24 22:08:27
783
原创 Button OnClick处添加脚本后 找不到自己写的方法
前言记录一个Unity 的Button事件出错,写好了脚本之后,并为物体增加了Button组件,在为其增加OnClick事件时,发现找不到脚本中所写的方法,如图所示:问题分析2.1 脚本问题排除经过检查,脚本并未出现编译错误,并且继承于MonoBehavior。2.2 脚本挂载问题经查阅资料,上述问题是通过直接挂载脚本到OnClick中导致的,OnClick中应该挂载含有脚本的GameObject物体,即可实现。操作如图所示:1、将脚本挂载于父物体上2、GameObject挂载于OnC
2023-03-20 21:25:07
1491
2
原创 Linux:进程控制(退出码)
2.可以在vim里面查询手册 命令:!5. 下面的echo打印的是上面echo的退出码。$^ 代表的是右侧的依赖文件列表。3.$@代表的是左侧的目标文件。4.查询最近的返回码。
2023-03-17 09:58:43
182
原创 Linux:创建子进程并获取子进程id和父进程id;getpid() getppid()
6.查看fork手册 man fork(如果创建成功,返回子进程id ,父进程0;如果创建失败,返回-1)7.make一下,生成myprocess运行文件,然后./myprocess。8.清除myprocess运行文件: make clean。5.vim myprocess.c 并且创建子进程。ppid:9101是bash,也就是命令行解释器。4.创建子进程 make fork。
2023-03-16 21:28:33
1663
原创 剑指offer 04.二维数组中的查找——报错(Vector数组越界)
在该测试用例中输入的是一个空vector,因此在matrix[0]时出现了数组越界错误。在此之前加上一个空判断就好,vector的判空函数为empty()
2023-03-14 21:47:55
362
原创 C++初阶 类与对象(3)
谈构造函数;初始化列表;explicit关键字;static成员;友元;内部类;匿名对象;拷贝对象时的一些编译器的优化
2023-02-20 23:15:04
112
原创 此文件中的某些Unicode字符未能保存在当前代码页中
此文件的某些Unicode字符未能保存到当前代码页中,是否以Unicode编码重新保存此文件,以便维护您的数据
2022-11-02 21:03:22
4442
2
转载 【unity】error CS0246: The type or namespace name ‘xxx‘ could not be found
【unity】error CS0246: The type or namespace name ‘xxx‘ could not be found
2022-11-01 20:35:03
9187
原创 将3Dmax的模型导入到unity中(带材质)
将3Dmax的模型导入到unity中(带材质)1.文件-导出-游戏导出器2.设置路径和文件名,然后导出 3.将导出的模型拉到Assets里面4.修改模型的材质要求5.然后就会得到以下这两个材质包 6.最后将模型拖上去即可...
2022-06-16 12:31:50
15136
2
原创 Overleaf中图片名不能居中的解决方法
解决方法1:看自己是否有居中命令: \centering解决方法2:若有居中命令依旧不能居中,看自己是否添加了caption的依赖包,可以在该文档的最上面找,如下图位置:可以看到,我只有graphicx的依赖包,所以在该处添加caption的依赖包:\usepackage{caption},如下图:...
2022-05-28 10:56:07
6974
3
原创 使用Latex编辑IEEE模板【插入图片】时出现“undefined control sequence”问题的解决方法
l.491 \includegraphics [width=8cm]{CNN}The control sequence at the end of the top lineof your error message was never \def'ed. If you havemisspelled it (e.g., `\hobx'), type `I' and the correctspelling (e.g., `I\hbox'). O.
2022-05-27 16:02:16
7330
原创 docker 命令之 exec 的理解与运用
exec 实际上要表达的是在一个运行状态下的容器里执行命令。(进到容器看一看)docker exec -it 容器 /bin/bash 这个命令行,其实就是通过 -it 的模式执行了一下/bin/bash
2022-05-13 22:01:09
937
原创 JAVA中int用完了20亿怎么办?
Java中的Integer的最大值为2,147,483,647。如果你需要一个更大的数字,你必须改变为一个long。解决办法:把一个数转换为long
2022-04-25 21:00:39
631
原创 从linux进入jupyter
1.docker ps :查看现有容器2.docker attach 容器ID :进入自己的容器 chen-pycharm3.直接输入 jupyter notebook4.后台退出的时候ctrl+c,然后yes,同意退出即可
2022-04-10 21:29:55
1726
原创 IDEA提示Cannot resolve symbol ‘String‘解决
今天在IDEA中用Java开发spark程序时,提示Cannot resolve symbol 'String’错误:解决办法:1.进入project structure2.更改JDK路径改完之后有可能还会有另一个问题:java: 错误: 无效的源发行版:16需要把project language level改成SDK default:...
2022-03-23 11:30:50
1174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人