buff

linux网络编程tcp

天大地大妈咪最大 提交于 2020-04-04 15:20:57
之前学习的时候笔记没有保存好,这次重新编写一个案例。 客户端实现程序代码: #include <string.h> #include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <netinet/in.h> #include <arpa/inet.h> #define DEF_TCP_SRV_PORT 19868 int main() { struct sockaddr_in addr; struct sockaddr_in srv_addr; int net_sock; int new_fd; int res; int len; char buff[128]; // 1. socket 初始化 // 1.1 创建socket net_sock = socket(AF_INET,SOCK_STREAM,0); if( -1 == net_sock ) { printf("create socket error!\r\n"); return -1; } // 1.2 初始化地址 bzero( &addr, sizeof(struct sockaddr_in)); addr.sin_addr.s_addr = htonl(INADDR_ANY); addr.sin

Linux c++ socket编程 客户端 服务器

随声附和 提交于 2020-01-19 19:02:05
服务器 #include <iostream> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> #include <string.h> #include <stdlib.h> #define MAXLINE 4096 #define SERVER_PORT 1234 using namespace std; int main() { int listenfd,connfd; struct sockaddr_in seraddr; struct sockaddr_in cliaddr; char buff[MAXLINE] = {}; int len; if (-1 == (listenfd = socket(PF_INET,SOCK_STREAM,0))) { cout<<"create socket failed!"<<endl; return 0; } else { cout<<"create socket success!"<<endl; } memset(&seraddr,0,sizeof(seraddr)); seraddr.sin_family = AF_INET; seraddr.sin_addr.s_addr = htonl

惊艳的时间轮定时器

北城余情 提交于 2020-01-11 03:42:30
问题引入:游戏里面每个Player身上有很多buffs,在每一个tick(最小时间段)都要去检查buff里面的每一个buff是不是过期,产生的效果如何,造成在每个tick里面都去遍历一个长list,明显很不好。 怎么优化? 1.原始模型: buff的状态在每一个tick里面都要更新!可以想象指针每移动一下,都会非常沉重地拖着所有的BuffList,好可怕…… 2. 优化模型1: 我们要避免的是:原始模型在每一个tick里面都要遍历List,那么我们试下以Times为key,在加入buff里时分配好它的结束和启作用的时间属于哪一个Time, 这个模型要注意的问题:当要加的Buff起效果已超过了一轮Tick总数时! 比如时间轮总Tick数为12个,现在指针到了tick=2处,要加一个再经过tick为15(起效果)的buff,怎么办? 可以算得:2 + 15%12 = 5,把此buff放到tick=5的槽里面(每个buff都会记录下它的结束时间的),待tick从2跳一轮回到2再跳3下到tick=5,这个buff就会执行。 这个模型完美解决原始模型(每个Tick都遍历整个BuffList)的问题,似乎很完美哦,但是却引入了新的问题,我们的最小tick明显不可能以小时计算,如果我们把Tick划分到秒级别, 一轮就有12*3600 = 43200个key,

UnicodeDecodeError: &#039;utf-8&#039; codec can&#039;t decode byte 0xc3 in position 0: invalid continuation byte

匿名 (未验证) 提交于 2019-12-02 22:11:45
解决参考: 代码: def verification_ssh(host,username,password,port,root_pwd,cmd): s=paramiko.SSHClient() s.load_system_host_keys() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname = host,port=int(port),username=username, password=password) if username != 'root': ssh = s.invoke_shell() time.sleep(0.1) ssh.send(' export LANG=en_US.UTF-8 \n') #解决错误的关键,编码问题 ssh.send('su - \n') buff = "" while not buff.endswith('Password: '): #true resp = ssh.recv(9999) print(resp) buff +=resp.decode('utf8') print('hhhhh') print(buff) ssh.send(root_pwd) ssh.send('\n') buff = "" # n = 0 while not

wpf中读写配置文档的方法

混江龙づ霸主 提交于 2019-12-01 19:01:25
WPF 配置文件读取与写入: 1、 在程序根目录下新建文本文档,将后缀名改成 .ini 文件; (将已存在的 Param.dat 的后缀改成。 ini ) 譬如: Param.ini 1) 文档的写法:INI 文件由节、键、值组成。 参考链接:(https://www.cnblogs.com/renyuan/p/4111695.html) 2、 VS 项目中新建类: INIFile.cs class INIFile { private string filePath; [DllImport("kernel32")] private static extern long WritePrivateProfileString(string strSection, string strKey, string strVal, string strFilePath); [DllImport("kernel32")] private static extern int GetPrivateProfileString(string strSection, string strKey, string strDef, StringBuilder sbRetVal, int intSize, string strFilePath); public INIFile(string strFilePath)

fread与read效率对比

余生长醉 提交于 2019-11-30 16:19:09
网上看了很多文章,都说 fread 比 read 读取数据更快云云,今天在我的 mac 上做了一个小测试,结果比较意外 1 #include <stdio.h> 2 #include <unistd.h> 3 #include <time.h> 4 #include <fcntl.h> 5 6 void test_fread(char *buff, int num); 7 void test_read(char *buff, int num); 8 9 int main() { 10 char buff[100]; 11 test_fread(buff, sizeof(buff)); 12 test_read(buff, sizeof(buff)); 13 } 14 15 void test_fread(char *buff, int num) { 16 clock_t start, finish; 17 double duration; 18 start = clock(); 19 20 FILE *fp; 21 char filename[] = "a.txt"; 22 fp = fopen(filename, "r"); 23 int i=0; 24 while(1) { 25 i++; 26 fread(buff, num, 1, fp); 27 if(feof(fp))

充值与营收博弈手游打折平台哪个靠谱

為{幸葍}努か 提交于 2019-11-29 15:30:01
游戏在家长看来有两项罪恶,一项是容易让孩子着迷,影响他们的正常生活;第二是能够游戏充值,让游戏不知不觉分了层级,也容易出现大量充钱玩游戏的情况。因为如此,许多家长对游戏深恶痛绝,因为小孩为了玩游戏做了太多不合理的事情,所以家长自然要好好教育他们。 但是就现在来看,游戏充值已经逐渐被人们接受。尤其是手机游戏成为主流以后,充值方式更加便捷,用户也逐渐接受了这种过程。这其实是用户对这种运营方式认可的做法,因为游戏充值本身就是游戏保证营收的方式,并且他们会明确禁止未成年人进行充值事宜。 因为有了游戏充值,游戏才有经费把游戏做的更好,才会有那么多人愿意为这个行业付出努力。其实游戏行业就是如此,很多时候会伴随着一些争议,但是现在的人慢慢接受了它的存在,也对游戏充值有了更多理解。 小编试过游戏喊话的公会,贴吧给的端,结果玩不了多久,要么是封号,要么是断续冲,还是得选自主的大平台,一起来看看: 获得最强整合奖的Buff游戏家: 平台特点: 》》》BUFF游戏家下载地址《《《(点击下载2019最新安装包) 如果不能点击请长按复制 http://tui.buff.vip/3413 到浏览器下载安装。特点是将各大折扣平台整合在一起,解决了玩家比较折扣的需求。当然能做到把几大平台集成进来,实力应该是非常强的。当然游戏FAN自身平台,也是自主充值,不存在帐号安全,其次,所有的游戏都首续充明确,明码实价

C++ UFT-8和GB2312间的转换

送分小仙女□ 提交于 2019-11-29 09:55:48
在这个帖子找到的代码 还蛮好用的 https://bbs.csdn.net/topics/391040755 #include <codecvt> #include <locale> #include <vector> using namespace std; std::string gb2312_to_utf8(std::string const &strGb2312) { std::vector<wchar_t> buff(strGb2312.size()); #ifdef _MSC_VER std::locale loc("zh-CN"); #else std::locale loc("zh_CN.GB18030"); #endif wchar_t* pwszNext = nullptr; const char* pszNext = nullptr; mbstate_t state = {}; int res = std::use_facet<std::codecvt<wchar_t, char, mbstate_t> > (loc).in(state, strGb2312.data(), strGb2312.data() + strGb2312.size(), pszNext, buff.data(), buff.data() + buff.size(), pwszNext