入职一个多月了,谈谈感想
好久没写博客了,入职已经有一个多月了,今天我谈谈我工作的感想吧。
昨天一个同事离职了,跟我一样是出来实习的,工作经验比我多,思维很活跃,离职原因很简单:想从事底层开发。人各有志吧,跟我相同的是大学都不玩网游,却都进入了网游公司。希望他选择是对的,向梦想奔进。
步入游戏行业以来,感觉自己挺适合的,特别是我选择了游戏服务的开发。在学校的时候做的最多的方面就是游戏了,但都是局限于单机游戏,而且做的东西都跟界面关系很大,因此面试的时候觉得我适合做客户端,但我坚决的选择了服务端,一个重要的原因就是我想开发没有界面的东西(在linux下)。
进入公司就学习Lua脚本,挺简单的,基本的东西一天就学会了,现在对Lua慢慢比较熟悉了。大学时候就自己捣鼓着学习linux下的网络编程,总想有一天可以运用到实际场合,如今正好用上了。这个月做的主要内容就是协议的处理,最初使用的方法是序列化数据和反序列化数据,边做边改,最后以时间空间消耗太大而告终,然后又使用了老大给的新方案,采用内存映射的方法(省去了序列化和反序列化的操作,直接从内存中读取数据)。不过最后我写出来的不够稳定,老大自己决定重写,我感觉不错,因为又可以看老大写的代码了(老大写的代码不错,清晰易懂)。这就是一步一步学习的过程,假如给你一份你没写过相关东西的代码看,你看起来会吃力且学到的东西不会很多的,当你自己实现过相关功能后再去看别人实现的代码就是一个学习的历程。
在学校的时候就关注了云风的博客,就想着一步一步的提升自己的技术,现在啥事都离不开网络了,所以我觉得我从网游开始是可以学到很多东西的,进公司的第一天老大就给我们将游戏的框架,听得迷迷糊糊的,不过后面修改了游戏的框架,听着就不怎么迷糊了,所以感觉融入了网游这个环境吧。
写了这么多技术无关的话语,最后来段有用的东西吧。
获取本地ip地址
//<start>获得本机地址, struct ifaddrs* ia = NULL; getifaddrs(&ia); struct ifaddrs* iia = ia; const char* filterstr = "192.168"; while( iia!=NULL ){ struct sockaddr_in* lookup_ip = (struct sockaddr_in*)iia->ifa_addr; if(strcmp(iia->ifa_name,"en0")==0){ const char* ipstr = inet_ntoa(lookup_ip->sin_addr); char ipstrcmp[8]; ipstrcmp[7]=0; memcpy(ipstrcmp,ipstr,7); if(strcmp(ipstrcmp,filterstr)==0){ printf("service start %s: %s:%d\n",iia->ifa_name,ipstr,listenport); } } iia = iia->ifa_next; } freeifaddrs(ia); //<end>代码是老大写的,感觉不错,就分享下吧,网上实现也挺多的
作者:涵曦(www.hanxi.cc)
出处:hanxi.cnblogs.com
GitHub:github.com/hanxi
Email:im.hanxi@gmail.com
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
《 Skynet 游戏服务器开发实战》
-
学习地址:
-
优惠推荐码:
2CZ2UA5u
-
可以先免费试学前 2 章内容