8086汇编初学之贪吃蛇前言一直没想过要去学习汇编,觉得需要用汇编的场合无非三种:1. 与硬件结合很紧密高级语言做不到2. 时空效率要求甚高算法层面已不能优化到3. 逆向破解等只能用某些途径看其汇编指令其余情况下,用汇编无异于有炮不用偏用鸟枪。本来准备等自己需求以上场合时再去学,但因为学校举办的汇编比赛,计算机学院都要参加,也算是一个由头,于是开始了我的第一个汇编程序。 运行效果代码只有400行,功能很简略,实现了最基本 2016-12-08 大学时期CSDN #游戏开发 #汇编
linux服务器开发之网关服务器的实现什么是网关服务器 初学linux服务器开发时,我们的服务器是很简单的,只需要一个程序完成与客户端的连接,接收客户端数据,数据处理,向客户端发送数据。但是在处理量很大的情况下,一台机器不能满足我们的需求,此时我们应该怎么办。我们可以将服务端的任务分摊到多台机器上完成,见下图 从图中可见,此时整个服务端主要分为了三部分。** 网关服务器:负责连接客户端与逻辑服务器,在两者间完成数据转发,使用负 2016-12-05 大学时期CSDN #服务器开发 #C++ #Linux网络编程
Epoll-ET模式读写之用户连接的封装前言 服务端而言,对于每一个新的连接我们都需要去保存其基本信息,如ip地址,套接字fd,也需要赋予其唯一标识如用户名。这里,我们来谈谈对用户连接的封装。 用户连接需要哪些数据1. 套接字描述符 sockfd 执行读写操作时当然不可缺 2. 连接信息 sockaddr 基本信息的保存 3. 用户缓存区 Buffer 非阻塞读写不可缺 4. 唯一标识 2016-12-03 大学时期CSDN #服务器开发 #Linux网络编程
Epoll-ET模式下非阻塞读写之Buffer的封装先说说Epoll的ET模式 epoll默认的模式是LT,要说ET不得不提到LT,LT与ET的区别可以用一句话概括:LT模式下只要socket处于可读状态(添加EPOLLIN事件时)或可写状态(添加EPOLLOUT事件时),就会一直返回其socket。ET模式下在第一次返回socket后,只有当socket由不可写到可写(添加EPOLLIN事件时)或由不可读到可读(添加EPOLLOUT事件时),才会 2016-12-03 大学时期CSDN #服务器开发 #Linux网络编程
linux之信号处理函数signal和sigactionsignal回调函数绑定信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式。那么我们很多场景下,需要对不同的信号进行捕获并做出响应操作。在linux上,我们有两种方式完成该操作: 1. signal#include <signal.h> signal(int, void (*)(int)); 第一个参数是我们要捕获的信号类型,第二个参数是 2016-11-22 大学时期CSDN #服务器开发 #Linux网络编程
游戏后台开发九问(腾讯技术分享实录)[导读]腾讯游戏讯,7月30日消息,第九届中国游戏商务大会网页游戏论坛30日在上海浦东嘉里大酒店展进行相关主题论坛活动。 30日,在上海chinajoy嘉里酒店进行了游戏开发者大会,腾讯游戏的研发部助力总经理聂志明进行了演讲。 他为大家演讲的题目是“游戏后台开发中的九个选择”,他解释,使用这个标题的原因,是因为我们在生活中总会遇到很多选择,这个道理同样适用在游戏开发中。 这九个选 2016-11-21 大学时期CSDN #游戏开发
Linux 怎样实现非阻塞connect前言 凡是接触过socket编程的,对connect函数一定不陌生。因为socket是面向连接的,所以在进行读写操作前我们首先要进行连接,而所谓连接也就是我们常说的三次握手,这个过程就是在connect函数中完成的。虽然connect函数本身不具备阻塞的功能,但是我们可以通过对socket进行设置和使用select函数可以设置阻塞时间的特性实现非阻塞。 为什么要非阻塞 第一,我们可以在conne 2016-11-07 大学时期CSDN #服务器开发 #Linux网络编程
自制Lex-词法分析器生成器(C++)前言 前一阵子,编译原理课实验内容是要去做一个词法分析器,实现后,觉得没有把 ** 正规表达式和NFA、DFA **这些知识用上,所以就产生了想自己去实现一个lex的想法,于是就有了这篇博文。如果还不知道词法分析器该怎么实现,可以去看 [ c语言词法分析初试(C++实现) ](c%E8%AF%AD%E8%A8%80%E8%AF%8D%E6%B3%95%E5%88%86%E6%9E%90%E5%88 2016-10-31 大学时期CSDN #编译原理
linux之创建守护进程简介 守护进程是一种运行在后台的特殊进程,它 ** 独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件 ** 。其实,本质上守护进程和普通的进程并没有什么区别,只是我们规定了一种进程的编写规则,将其叫做守护进程,仅此而已。 特点1. 在后台运行 为了不让其阻塞终端,我们用fork()创建子进程,然后退出父进程,就可以完成在后台运行的目的。 2. 脱离控制终端,创建新的会话组和进程组 2016-10-17 大学时期CSDN #服务器开发 #Linux系统编程
linux之fcntl&flock建议锁的操作前言当我们要进行多进程编程的时候,经常存在多个进程需要访问同一个文件的情况,因此会产生进程间访问不一致的问题,那么我们可以用到fcntl函数,我们可以用它来对文件或者文件的一部分进行上锁。 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, ... /* arg */ ); 2016-10-12 大学时期CSDN #服务器开发 #Linux系统编程
c语言词法分析初试(C++实现)开篇 所谓词法分析,就是将源代码按照构词规则分解成一系列单词符号。单词是语言中具有独立意义的最小单位,包括关键字、标识符、运算符、界符和常量等。 分析 源程序分解的单词可以归为以下几类: 1. 关键字 c语言关键字有不少,这里只列举其中一部分:for,while,do,continue,if,else,char,int,double,return 2. 变量名 变量名的规则为:由字母数字以及 2016-10-08 大学时期CSDN #编译原理
正规表达式转NFA(C++)分析 表达式里包含五种符号:左括号,右括号,连接符,选择符,闭包符。连接符因为优先级最高,可以将其过滤掉,不予考虑。 闭包符* 首先来说闭包,无非两种情况:X* 或者 (…..)*两者都可以看做是从一个起始状态,经过诸多输入到达一个终止状态。如 1– X –>2 和 1– (……) –> 2。那么闭包符可以看做是以下操作:1 – ε –> 22 – ε –> 1即将首尾以 2016-10-02 大学时期CSDN #编译原理
JavaWeb ServletContext/application初试总结简介:ServletContext/application 为什么将其两者放在一起介绍呢,因为他们可以被看做是同一个类,只是名字起得不同而已。ServletContext是在Servlet中使用,而application则作为内置对象用于jsp中。他们的作用域是 ** 整个tomcat的从启动到关闭的过程 ** 。我们可以将其看做是JavaWeb应用里的全局变量。 功能 所谓功能,也就是说,我们 2016-09-26 大学时期CSDN #Web开发
IDEA使用maven创建web项目卡住解决办法解决方法 如下图所示:在Properties中添加一个参数archetypeCatalog=internal,不加这个参数,在maven生成骨架的时候将会非常慢,有时候会直接卡住。 理由 archetypeCatalog表示插件使用的archetype元数据,不加这个参数时默认为remote,local,即中央仓库archetype元数据,由于中央仓库的archetype太多了,所以导致很慢,指 2016-09-23 大学时期CSDN #Web开发
网易游戏面试题题意 思路 乍一看题,冒出来的思路是,将每个用户凡是在同一个群的两个用户看做是一条无向边,这样所有群的所有用户之间的联系就转化为了一张图,然后以官方用户(id=1)为起点,计算所有可以到达的节点的总数,dfs即可,按着这个思路正准备开始写,发现id max为100000,二维数组是开不了了,临界表的话未免也太繁琐了。才突然意识到我们只需要对所有用户之间的连通性进行判断,至于具体的连通顺序根本不需要 2016-09-19 大学时期CSDN #并差集
JDBC数据库操作封装(PreparedStatement)之前有用过老师给的实现好的JDBC封装类,今天自己看着书按自己思路实现了一遍,并将Statement改为了PreparedStatement。 代码import com.sun.tools.javac.util.List; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.u 2016-09-19 大学时期CSDN #Java
Mysql查询重复数据并按条件删除重复行在对游戏进行合区的过程中, 存在一个情况,那就是当一个账号在两个区都存在角色的时候, 需要按照条件对重复角色进行删除,比如以等级为条件, 只保留等级高的. 解决方案用mysql语句, 两条就可以解决: 首先, 第一条语句 create temporary table temp as select user_id,max(level) as MAXID from user group by 2016-09-02 大学时期CSDN #游戏开发
java程序操作命令行使用 在写java项目时, 有些特殊情况下需要用到操作命令行, 以前用过好几次, 都是用的时候从网上找, 用完又忘记, 用一次找一次,所以这次干脆将其保存在这里. /** * Created by shiyi on 16/8/30. */ import java.io.BufferedReader; import java.io.InputStreamReader; public clas 2016-08-31 大学时期CSDN #Java
步步为营-墙棋AI人机对战(Android)放纵了三天了,之前写了一半懒得去动的墙棋,反而在这几天间隙断断续续完成了,也是挺可笑的。 简介-关于墙棋 路墙棋(Quoridor),或译墙棋、步步为营,是由Mirko Marchesi(米尔科·迈凯西)设计、GigamicGames发行的两到四人对战的棋类游戏(桌面游戏),并在1997年被门萨国际评选为门萨推荐的游戏。1998年游戏杂志(GamesMagazine)年度游戏大奖。 先 2016-08-01 大学时期CSDN #游戏开发 #Android
cocos2dx实现简单卡牌翻转效果将两张图片放入图层,将其中一个图片x的比例设置为0,即隐藏起来。分别给两个图片绑定点击监听事件,事件触发后执行缩放动作。将自身x比例设置为0,完成后将另一张图片x比例设置为1。详见代码注释。 bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( 2016-07-23 大学时期CSDN #Cocos2d-X开发