All Posts

Minecraft服务器搭建

MC服务端 编译 可以前往mcbbs下载别人集成好的服务器端,此处我们选择自己编译生成服务器端运行文件。spigotmc是一个以高性能著称的MC服务器端,在官网下载BuildTools.jar文件后,需要自行编译出所需版本的服务器端文件,格式如下: java -jar BuildTools.jar --rev [版本号] 编译需要一段时间,完成编译后将生成的jar文件拷贝至单独的文件夹。 运行 在jar文件目录下,编写一小段脚本以简化启动命令,内容如下: java -Xms1024M -Xmx1024M -jar [your-jar-file] nogui 启动一个Screen终端,然后输入 sh start.sh 等待服务器启动完毕即可,要使服务器后台运行,按下ctrl+a,d后screen将处于后台。恢复screen输入: screen -r mc 终止服务器直接 ctrl+c 即可 配置 generator-settings= #用於設定超平坦世界的函數,留空即可 op-permission-level=4 #設定OP的許可權等級 allow-nether=true #是否允許生成/進入下界 level-name=world #世界名稱及其文件夾名 enable-query=false #允許使用GameSpy4協議的伺服器監聽器(用於收集伺服器信息) allow-flight=false #是否允許玩家在生存模式透過MOD飛行 announce-player-achievements=true #是否公開顯示玩家成就 server-port=25565 #伺服器端口(默認為25565) level-type=DEFAULT #世界類型 enable-rcon=false #是否允許遠程訪問伺服器控制台 level-seed= #世界種子 force-gamemode=false #玩家是否總是以默認游戲模式進入伺服器 server-ip= #伺服器IP,一般來說留空即可 max-build-height=256 #最高建築高度(最高256) spawn-npcs=true #是否生成村民NPC white-list=false #是否開啟白名單認證 spawn-animals=true #是否生成動物 hardcore=false #是否開啟極限模式 snooper-enabled=true #是否允許伺服器定期發送統計數據 online-mode=true #是否開啟正版認證(開啟後只有正版玩家可進入) resource-pack= #資源包URL(可讓玩家選擇是否使用伺服器提供的資源包) pvp=true #可否PVP difficulty=1 #難度 enable-command-block=false #是否可以使用命令方塊 gamemode=0 #默認游戲模式 player-idle-timeout=0 #如果該玩家無反應超過設定值(單位:分鐘),將會被踢出 max-players=20 #最大玩家數量 spawn-monsters=true #是否生成怪物 generate-structures=true #是否生成建築物 view-distance=10 #客戶端視野距離的上限 motd=A Minecraft Server #伺服器在伺服器列表頁所顯示的信息 MC客户端 推荐HMCL

基于PIC16F877单片机的智能垃圾桶

微芯2016北邮奖学金获奖作品 视频演示 汇编部分 status equ 03h portc equ 07h trisc equ 87h portd equ 08h ;hw,smoke trisd equ 88h porta equ 05h trisa equ 85h porte equ 09h ;re0蜂鸣器 低有效 trise equ 89h ;keyborad portb equ 06h trisb equ 86h ;=================定时器tmr0=================== tmr0 equ 01h option_reg equ 81h intcon equ 0bh tmr0b_fast equ 128 tmr0b_slow equ 0 ;==================常量定义=================== count equ 21h ;电机转数 ljt_status equ 22h ;桶盖状态,0为关闭,1为打开状态 jp_status equ 23h ;键盘状态 yw_status equ 24h ;yw ;===================体1设置========================= org 000h nop bsf status,5 bcf status,6 ;转到体1 movlw 00h ;电机四位信号输出 movwf trisc movlw 0ffh movwf trisd ;红外信号一低两位输入,0为遮挡 movlw 0ffh ;设置ra为输入 movwf trisa movlw 0ffh ;rb输入 movwf trisb movlw 00h ;蜂鸣器输出 movwf trise movlw 03h ;分频数 movwf option_reg bcf option_reg,3 ;分频器分配给tmr0 bcf option_reg,4 ;上升沿tmr0递增 bcf option_reg,5 ;内部时钟提供时钟源 bcf option_reg,7 ;启用b端口上拉电阻 goto init ;=====================体0设置===================== init bcf status,5 ;转到体0 movlw 00h ;输出初始化 movwf portc movwf ljt_status ;桶盖初始状态为0 movlw 0ffh ;蜂鸣器初始不工作 movwf porte movlw 01dh ;电机初始转数 movwf count nop nop goto main ;======================主程序==================== main call scan ;调用键盘扫描 call yw_gy movlw 01dh ;电机初始转数 movwf count btfsc portd,0 goto work1 btfss ljt_status,0 ;若桶盖为1,跳过正转 call djzz ;电机正转 work1 movlw 01dh ;电机初始转数 movwf count btfss portd,0 goto main btfsc ljt_status,0 ;若桶盖为0,跳过反转 call djfz ;电机反转 goto main ;==============键盘扫描=============== scan ;第一行扫描 movlw B'11111110' movwf portb nop nop bsf status,5 ;到体1,转换方向 movlw 0f0h movwf trisb bcf status,5 ;返回体0 movf portb,0 movwf jp_status ;键盘状态读入通用寄存器 btfss jp_status,4 goto set_flag1 btfss jp_status,4 goto scan btfss jp_status,5 goto set_flag2 ;第二行扫描 bsf status,5 ;到体1,转换方向 movlw 0fh movwf trisb bcf status,5 ;返回体0 movlw B'11111101' movwf portb nop nop bsf status,5 ;转换方向 movlw 0f0h movwf trisb bcf status,5 ;返回体0 movf portb,0 movwf jp_status btfss jp_status,4 goto set_flag3 btfss jp_status,5 goto set_flag4 return ;============标志测试============= set_flag1 ;电机正转打开桶盖 movlw 01dh ;电机初始转数 movwf count call djzz bsf ljt_status,0 return set_flag2 ;电机反转关闭桶盖进入工作状态 movlw 01dh ;电机初始转数 movwf count call djfz bcf ljt_status,0 return set_flag3 ;无 return set_flag4 ;无 return ;=====================电机正转===================== djzz call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast movlw 080h movwf portc call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast movlw 0c0h movwf portc call delay_fast call delay_fast call delay_fast call delay_fast movlw 040h movwf portc call delay_fast call delay_fast movlw 060h movwf portc call delay_fast call delay_fast movlw 020h movwf portc call delay_fast call delay_fast movlw 030h movwf portc call delay_fast call delay_fast movlw 010h movwf portc call delay_fast call delay_fast movlw 090h movwf portc call delay_fast call delay_fast decfsz count,1 goto djzz bsf ljt_status,0 ;桶盖打开标志1 return ;======================电机反转==================== djfz call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast movlw 090h movwf portc call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast call delay_fast movlw 010h movwf portc call delay_fast call delay_fast call delay_fast call delay_fast movlw 030h movwf portc call delay_fast call delay_fast movlw 020h movwf portc call delay_fast call delay_fast movlw 060h movwf portc call delay_fast call delay_fast movlw 040h movwf portc call delay_fast call delay_fast movlw 0c0h movwf portc call delay_fast call delay_fast movlw 080h movwf portc call delay_fast call delay_fast call hwgy_tg_open ;检测满,是则蜂鸣 decfsz count,1 goto djfz bcf ljt_status,0 ;桶盖关闭0 call delay_fast call hwgy_tg_close ;检测清空 return ;==============红外感应=================== ;红外感应使桶盖打开 rd0 hwgy_open call delay_slow call delay_slow call delay_slow btfsc portd,0 goto hwgy_open return ;红外感应使桶盖关闭 rd0 hwgy_close call delay_slow call delay_slow call delay_slow btfss portd,0 goto hwgy_close return ;红外感应范围内是否有目标 hwgy_tg_open btfss portd,1 call fmq_open return hwgy_tg_close btfsc portd,1 call fmq_close return ;==============蜂鸣器==================== ;蜂鸣器工作 fmq_open movlw 00h movwf porte return ;蜂鸣器停止工作 fmq_close movlw 0ffh movwf porte return ;================短延时=================== delay_fast bcf intcon,2 movlw tmr0b_fast movwf tmr0 loop1 btfss intcon,2 goto loop1 return ;===============长延时=================== delay_slow bcf intcon,2 movlw tmr0b_slow movwf tmr0 loop2 btfss intcon,2 goto loop2 return ;===========yw=============== yw_gy btfss portd,4 call fmq_open btfsc portd,4 call fmq_close return end

聊天客户端与服务端改进

更新: 增加网络连接时的错误判断,实现错误识别并显示错误窗口 增加用户登录功能(未连接SQL版本) 增加更改昵称功能 本文基于上一篇博文 《MFC实现简单聊天客户端与服务端》 效果显示 客户端 重载OnReceive函数,用于接收数据 void CMySocket::OnReceive(int nErrorCode) { CChatClientDlg* dlg = (CChatClientDlg*)AfxGetApp()->GetMainWnd(); //获得返回的登陆状态 Receive(dlg->buff, 200, 0); CString temp = dlg->buff; int index = 0; int sum = temp.GetLength(); index = temp.Find('&')+1; serInf = temp.Mid(index, sum - index); //AfxMessageBox(serInf); 调试信息 if (index >= 1) dlg->isLogin = ConfirmLogin(); if (temp[0] != '$') //屏蔽验证消息,不在聊天记录内输出 { CString temp1 = "server: "; CString temp = dlg->buff; CString str; dlg->m_tm = CTime::GetCurrentTime(); str = dlg->m_tm.

MFC实现简单聊天客户端与服务端

注意事项: 针对vs2013 - 由于mfc在vs2013支持并不完整,根据MSDN请前往微软开发者中心下载 Multibyte MFC Library for Visual Studio 2013,vs2015同理 - 务必将项目属性中的 字符集 更改为 使用多字节字符集 ,否则无法编译通过 - 本代码为课本代码,课本上源码有坑,注意对比 客户端服务端效果显示 客户端的实现 ChatClientDlg对话框具体实现 //需要增加判断是否连接 // ChatClientDlg.cpp : 实现文件 // #include "stdafx.h" #include "ChatClient.h" #include "ChatClientDlg.h" #include "afxdialogex.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 用于应用程序“关于”菜单项的 CAboutDlg 对话框 class CAboutDlg : public CDialogEx { public: CAboutDlg(); // 对话框数据 enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) END_MESSAGE_MAP() // CChatClientDlg 对话框 CChatClientDlg::CChatClientDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CChatClientDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_Port = 0; m_IPAddress = _T(""); } void CChatClientDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_HISTORY, m_list); DDX_Control(pDX, IDC_INPUT, m_input); } BEGIN_MESSAGE_MAP(CChatClientDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_START, &CChatClientDlg::OnBnClickedStart) ON_BN_CLICKED(IDC_DISCONNECT, &CChatClientDlg::OnBnClickedDisconnect) ON_BN_CLICKED(IDC_SEND, &CChatClientDlg::OnBnClickedSend) END_MESSAGE_MAP() // CChatClientDlg 消息处理程序 BOOL CChatClientDlg::OnInitDialog() { CDialogEx::OnInitDialog(); //设定按钮控件的操作顺序 // _T(字符串)实现多字符集 GetDlgItem(IDC_DISCONNECT)->EnableWindow(FALSE); GetDlgItem(IDC_SEND)->EnableWindow(FALSE); GetDlgItem(IDC_INPUT)->EnableWindow(FALSE); GetDlgItem(IDC_IPADDRESS)->SetWindowText(_T("127.

2014/2015年总结

大一 在北邮的大一生活已经正式结束了,回顾这一年的学习生活,无路在学习还是日常生活乃至人际交往上,总有成功也有失败,这些都让我迅速的成长起来——学会独立思考,学会为自己的选择负责,学会享受成功的喜悦,学会默默承受失败的痛苦,学会成熟。 一、生活状况 因为北京的气候和饮食习惯与家乡相差不大,所以没有什么水土不服的问题,只是第一次一个人这么长时间在外,第一次住集体宿舍,起初难免有点无法适应这种局面,但随着交到了新的朋友,与1204寝室的同学打成一片,我也慢慢适应了大学的新生活。 二、情感状况 由于高中自己忙于学业,而且父母期望也比较高,所以一直没有打算谈恋爱,再加上高中自己还是比较内向,喜欢自己做自己喜欢的事,导致我的交际圈也不是很大,没有刻意去结交一些朋友,所以一直没有谈恋爱。大一的生活改变了我很多,我明白了主动去结交一些朋友是很好的,但是缺乏经验的我还是在大一持续单身。 三、学习状况 高考结束后我像大部分人一样立志要在大学好好学习,但是因为一些社团和学生会的事情,耽误了很多自习的时间,甚至在考试前还得忙着与考试无关的事情,本来想中途放弃除学习以外的事物,但最终还是因为各种各样的原因没有执行。虽然学习受到了影响,但还是收获颇多,我学会了如何分配时间,如何安排繁杂的事物,如何调整自己的心态等等。但我知道,现实是成绩很不理想,大部分科目处于70+,一部分80+,看着别人的成绩,我知道我在大一不够努力。 四、学生会和社团 社团我参加了乒乓球协会和一个科幻基地,科幻基地在后来我发现是一个很水的社团,于是去过2次变再没有参加过其活动,而乒乓球协会由于加入了中心组,事情比较多,但我还是很高兴能加入这个社团,在这里不仅锻炼了身体,还结识了很多同学。学生会是大一中途室友拉进去的,本来没有太大的意愿加学生会,但还是干够了一年,其中也出了不少宣传品,大家在一起努力为学院的活动提供支持,我还是很开心的。 五、业余爱好 小时候学过绘画、萨克斯、书法,因此对这些都有点兴趣,但到高中就慢慢都放弃了,取而代之是喜欢上了用PhotoShop制作自己喜欢的图片,听一些萨克斯的曲子,也喜欢玩电脑游戏和桌游,但我对网游不是很喜欢,因此一直接触的是单机和fps竞技游戏,这些不仅能放松自己,也能锻炼自己的逻辑和反应速度,最终要的一点是,不会沉迷。还有就是非常喜欢中国象棋,虽然算不上高手但也一直坚持了下来。乒乓球是我最喜欢的运动项目,每周基本都回去乒乓球教室和朋友打球。(好吧,这是一篇大一总结,要交的那种) 大二 颇多收获,却也失去了许多 学习 模电,信号,数据结构,概率论,大物,毛概,英语还有各种各样的实验课,交织出了这个疯狂的大二上。忙,真的很忙,忙着学新的内容,忙着做实验······虽然在开始时再次决定好好学习,但是似乎还是失败了。大一的时候,在学业之外,还自学了ps,pr,ae等软件,熟悉了怎样装系统,倒腾着各种软件。而大二上则有点颓废,除了假期接触了下安卓开发,在上课期间就再没有干过什么了(最近get了拆机清灰和hexo搭个人博客,还算可以)。 工作 辞掉了学生会的工作,不再在宣传部做海报了;退了乒协的中心组,社团活动再也没有去过; 学委的工作一直从头忙到尾,甚至毛概课布置给学委的任务都已经排到了下学期开学; 自己的大创项目也草草收尾了,将近半年的心血付诸东流,虽然学生会的工作、社团活动都为它做了让步,但一个人又能怎样,毕竟当初的设想是一个团队的合作才能实现。 学委的工作已经没有心思再继续干下去了,下学期准备辞了然后去试着追寻自己的目标:独立游戏开发者,或许是安卓平台,或许是pc,还没有很明确的目标。 生活 搬到了久闻大名的本部将军冢,住宿环境就不多说了,毕竟我邮人多······。情感问题依旧,单身狗一枚,其中经历了一些事,很伤心;cs打的有点多,不过因此认识了很多新朋友,还是很开心的。还有就是校园网居然收费了,这渣网也好意思······,不得不使用一些非常规手段规避收费了(不要问我怎么做到的 :P)更新博客要耗很多流量的好啵 =_= 期望 1、下学期学业能有大的改观 2、脱单 3、能基本掌握安卓开发 4、尝试开发自己第二款游戏(第一款简直渣) 5、尝试ACM 6、cs能找到更多的队友 :P 7、博客不断更 就这样吧 2014,我们一起经历了太多。这一年,和我们一起你寻获了什么?知识?乐趣?还是难忘的记忆? 这一年,世界痛失3架飞机,幸好我们还有维珍和南航的英雄机长。 这一年,ISIS带着血腥和极端的姿态立国,文明与他们的战争才刚刚开始。 这一年,WhatsApp以190亿美元嫁入Facebook,Uber和小米估值超过400亿美元,阿里成功赴美上市。互联网,仿佛已进入一个更灿烂的纪元。 这一年,苹果用两部新手机再次令世界疯狂;而诺基亚,作为一个手机品牌与这个世界暂时挥别。 这一年,“罗塞塔”完成10年64亿公里的旅行,将探测器“菲莱”降落在彗星上。 这一年的你,又去了哪里旅行呢? 明天2015,我们又要一起出发了对吗? 新年快乐。