系统编程
你只在游戏中存在
这个作者很懒,什么都没留下…
展开
-
使用protobuf通信unity客户端和服务器
2.服务器代码1.服务代码2.修改PROTO,使用PROTOBU工具进行生成.cs消息协议文件。3.服务器主程序初始化并启动设定服务原创 2022-07-09 16:54:11 · 903 阅读 · 0 评论 -
bat批处理文件
1.批量复制@echo off:: s1:源路径 t1:目标文件setlocal enabledelayedexpansion set s1=D:\ascript\jjagentset t1=E:\lcoal_jlichtset t2[0]=jlicht1\jjagentset t2[1]=jlicht2\jjagentset t2[2]=jlicht3\jjagentset t2[3]=jlicht4\jjagentfor /l %%i in (0,1,3) do (copy %s1原创 2021-12-08 17:01:04 · 262 阅读 · 3 评论 -
基于lua的观察者模式应用:事件分发系统
local b = class()function B:on_money_change(money) print(money,"B recive event")endEventSystem:on(Event.MoneyChanged,B.on_money_change,{target = B})--定义回调函数和注册事件local c = class()function C:on_money_change(money) print(money,"C recive event")endEv原创 2021-08-31 20:09:13 · 286 阅读 · 0 评论 -
基于go语言的牛牛游戏服务器搭建
游戏规则:游戏用牌为除大小王以外的一副牌,共计52张。玩家人数为固定4人(初版人数),每人随机发5张牌。牌型说明牌型 赔率(闲家下注) 说明无牛 1倍 五张牌中没有任意三张牌点数之和为10的整数倍,例如:a、8、4、k、7。有牛 1~2倍 五张牌中有三张的点数之和为10点的整数倍,并且另外两张牌之和与10进行取余,所得之数即为牛几,例如:2、8、j、6、3,即为牛9。牛一到牛6为1倍,牛七到牛九为2倍。牛牛 3倍 五张牌中第一组三张牌和第一组二张牌之和分别为10的整数倍,例如原创 2021-07-29 10:27:47 · 1367 阅读 · 4 评论 -
基于go语言的websocket建立
服务器package mainimport ( "bufio" "fmt" "net/http" "os" //"time" "github.com/gorilla/websocket")var ( up = websocket.Upgrader{ // 检查区域 可以自行设置是POST 或者GET请求 还有URL等信息 这里直接设置表示都接受 CheckOrigin: func(r *http.Request) bool { return true },原创 2021-07-04 22:29:43 · 272 阅读 · 2 评论 -
go 并发编程
题目:一个协程写,一个协程读,主进程等待执行完退出package mainimport ( "fmt")func write(intChan chan int) { for i := 0; i < 50; i++ { intChan <- i } close(intChan)}func read(intChan chan int, exitChan chan bool) { for { v, ok := <-intChan if !ok { b原创 2021-06-05 22:13:25 · 66 阅读 · 0 评论 -
字节一面(线程调度问题)
创建10个线程 先执行A再执行B#include<iostream>#include<thread>#include<string>#include<vector>using namespace std;condition_variable cv;mutex x1;int flag=0;void a(int i){ cout <<"a任务开始执行了,线程编号=" << i <<endl; if(i原创 2021-04-20 22:06:59 · 93 阅读 · 0 评论 -
力扣多线程题目
按序打印输入: [1,3,2]输出: “firstsecondthird”解释:输入 [1,3,2] 表示线程 A 将会调用 first() 方法,线程 B 将会调用 third() 方法,线程 C 将会调用 second() 方法。正确的输出是 “firstsecondthird”。1.线程锁机制class Foo { mutex x1;mutex x2; unique_lock<mutex>lock1; unique_lock<mutex&.原创 2021-04-19 22:16:01 · 213 阅读 · 0 评论 -
makefile编写
makefile:mytool:main.o too1.o too2.o gcc main.o too1.o too2.o -o mytoolmain.o:main.c gcc main.c -c -Wall -g -o main.otoo1.o:too1.c gcc too1.c -c -Wall -g -o too1.otoo2.o:too2.c gcc too2.c -c -Wall -g -o too2.oclean:原创 2021-04-19 20:19:40 · 65 阅读 · 0 评论 -
进程间通信——消息队列,共享内存,信号量数组
命令:ipcs 查看共享内存、消息队列、信号量数组使用情况ipcrm:删除 共享内存、消息队列、信号量数组 大写(根据指定的KEY删除) 小写(根据指定的id删除)-M -Q -S-m -q -s 三种通信方式键值KEY获取:ftok()函数:key_t ftok(const char *pathname, int proj_id);xxxget xxxopt xxxctl原创 2021-04-13 17:10:37 · 317 阅读 · 0 评论 -
进程间通信——管道通信
定义:内核提供:单工 (一端写端 一端读端) 自同步机制(写端写满后会阻塞等待,直到等到读端读取数据后,写端才会再写入数据)1.匿名管道:进程间有亲缘关系使用(无法在磁盘看到)创建方法:pipe()函数 int pipe(int pipefd[2]);fd[0]:读端 fd[1]:写端2.命名管道:进程间无亲缘关系使用(可以在磁盘看到 格式为p)创建方法: mkfifo函数 int mkfifo(const char *pathname, mode_t mode);参数1.名字 参数2原创 2021-04-13 16:10:47 · 105 阅读 · 0 评论 -
使用状态有限机实现数据中继
实现数据交互:1.读左-写右-写右-读左 (阻塞)2.读左-写右 读右-写左**有限状态机:**解决复杂流程问题简单流程:如果一个程序自然流程是结构化的(无分支)复杂流程:如果一个程序自然流程是非结构化的(有分支)...原创 2021-03-25 21:53:47 · 166 阅读 · 0 评论 -
进程:用户权限和组权限实现方式
文件权限:u+s 用户权限:执行命令chmod u+s, 就是针对某个程序任何用户都有读写这个程序的权限,可以像root用户一样操作,这个指令只对程序有效,如果用此权限放在路径上是无效的。g+s 群组权限:执行命令是chmod g+s,它的意思是强制将此群组里的目录下文件编入到此群组中,无论是哪个用户创建的文件。o+t:只有root和此目录拥有者可以删除ugo+r:防止同组用户删除文件UID:真实的用户ID 进程的UID就是其创建者的用户ID,用于标识进程的属主。EUID:有效的用户ID原创 2021-03-23 20:06:28 · 182 阅读 · 0 评论 -
进程基本概念和应用
1.查看进程:ps axfps -ef|book 查看所有为包含book的进程2.fork后父子进程区别: 拷贝,克隆,一模一样fork返回值不同 pid不同 ppid不同未决信号和文件锁不继承,资源利用量清0.3.fork前需要执行刷新流操作: fflush(null);linux命令:管道 |wc 计算字数:-c或–bytes或–chars 只显示Bytes数。 l或--lines 显示行数。 -w或--words 只显示字数。 --help 在线帮助。 -原创 2021-03-22 23:12:36 · 150 阅读 · 0 评论 -
线程调度打印HELLO和BYE(条件变量机制)
还是上一道题,这次用条件变量来解#include<stdio.h>#include<pthread.h>#include<unistd.h>#include<string.h>#include<signal.h>#include<stdlib.h>pthread_t tid[5];static pthread_mutex_t mt=PTHREAD_MUTEX_INITIALIZER;//初始化锁static pthr原创 2020-09-13 15:58:26 · 91 阅读 · 0 评论 -
线程调度打印HELLO和BYE(锁机制)
线程调度打印HELLO和BYE题目:设计5个线程打印HELLO 和BYE先HELLO 后BYE具体操作如图所示:创建线程和线程锁后,每个线程先自锁,然后让MAIN线程去开1线程锁,接着递推到最后一个线程,让5线程去开1线程的锁进行第二轮的BYE打印。在这里;include<stdio.h>#include<pthread.h>#include<unistd.h>#include<string.h>#include<signal.h&g原创 2020-09-08 20:32:50 · 210 阅读 · 0 评论 -
SOCKTE网络编程
1.服务端将一个套接字绑定指定ip地址和端口,并通过此套接字等待监听客户端的连接请求。2.客户端发送请求给服务端3.服务端接受请求4.客户端和服务端通过读写套接字实现通信在这里插入代码片...原创 2021-03-22 20:24:18 · 194 阅读 · 0 评论