我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

当我还是大一学生的时候,我就开始尝试用 C 语言进行网络编程。你知道的,bind、recv、send 以及所有这些东西。

我拿出从图书馆借来的一本书,按照书上的说明,一行一行地输入到电脑里,成功编写了一个可以发送和接收消息的TCP服务器和客户端。

但是客户端和控制端都是在自己的电脑上运行的,自己发信息太无聊了,于是我把客户端发给了室友,这样我们就可以跨电脑通讯了。

于是我们开始在那个黑色的控制台窗口聊天。虽然他就在我对面,交流只是短信,如此简单,但室友还是夸我厉害,让我很有成就感。原来网络编程这么有趣。

操作成功之后,晚上和室友们玩了几局穿越火线,开心极了~

花生壳域名解析教程_花生壳域名解析不稳定_花生壳域名解析ipv6

第二天,我就开始想着把这个客户端发给2公里外的女朋友,这样晚上我们在各自的宿舍里聊天,想想都觉得挺浪漫的。

花生壳域名解析ipv6_花生壳域名解析教程_花生壳域名解析不稳定

没想到一下子就被鄙视了,就这点黑乎乎的玩意儿?界面就不能弄得漂亮点吗?

是啊,这玩意儿实在是太不象样了,至少要像QQ一样,有聊天界面,有发送按钮,要是还能发图片就更好了。

于是我又花了一周时间,用 VC++ 做了一个简单的界面。我还从网上找了一个漂亮的皮肤,把它加进去。现在看起来好多了。

我兴奋地把程序发给了女朋友,期待着她欣赏的目光。

但...

她居然在QQ上告诉我:弹出无法连接服务器的窗口!

花生壳域名解析不稳定_花生壳域名解析ipv6_花生壳域名解析教程

我的服务器已经开放,但是就是无法连接。

我很快就冷静了下来,老师教过我,可以用ping命令来检查网络是否通畅。

我使用QQ远程控制桌面,并从她的电脑ping我的电脑:

ping 192.168.1.103

哇!我无法 ping 通它!

我胆怯地向有经验的前辈求助,结果又被白眼:能ping通才奇怪啊,这是一个局域网地址啊!

我很困惑。什么是 LAN 地址?为什么我无法 ping 通它?

花生壳域名解析教程_花生壳域名解析不稳定_花生壳域名解析ipv6

那时我才刚刚学会C语言,刚刚开始上计算机网络课程,用菜鸟来形容自己一点也不为过。

于是我开始疯狂充电,然后我才知道什么是公网地址和私网地址,还知道了宿舍里的路由器有个功能叫NAT,会偷偷把我们电脑的私网地址改成公网地址,一出宿舍就用公网地址通讯。

NAT的出现缓解了IP地址不足的问题,使得我们宿舍几个人可以共用同一个IP地址上网。

现在看来这是一项简单的技术,但当时我却不知道,因此出了丑。

于是我找到路由器上WLAN口的公网IP地址,替换客户端代码中的服务器地址,重新编译一个包发给了女友。

现在应该没问题了,对吧?

但是,它仍然不起作用!

我想每个看到的人心里都会说:这要是能用才怪呢!

是的,虽然已经改成公网地址了,但是路由器还没有配置转发。

折腾了好久,最后还是学会了一种叫UPnP的东西,需要在路由器上配置端口转发,把公网IP下的端口号映射到局域网下某个地址的端口上,这样有公网IP地址的路由器收到后就会把连接转发到我电脑上的服务器上。

我登录了路由器后端,映射了我的服务器正在监听的端口号,迫不及待地想让我的女朋友再试一次!

终于,这次她告诉我:接通了!

最后我给她发了第一条信息:Hello, World!

心情好,午餐加点肉吧~

花生壳域名解析ipv6_花生壳域名解析不稳定_花生壳域名解析教程

使用IP地址来建立连接终究不是一个好主意,因为路由器上的公网IP经常会变,每次变都要重新编译一次客户端,比较麻烦。

不然每次都要我手动输入,可我总不能每次都留一个输入框让女朋友填写IP地址吧,她肯定会问我:我登录QQ的时候怎么没有填写QQ的IP地址呢?

于是又去搜索,发现用域名代替IP可以解决这个问题。

在程序代码中将IP替换为域名,然后动态解析为IP地址,服务器IP地址不再需要硬编码到代码中。

但问题来了,这么没用的东西,为什么要注册域名呢?注册域名不是要花钱吗?

公网IP地址经常变化,难道每次变化都要修改域名映射的IP地址吗?真是麻烦啊!

又研究了一段时间,知道了一个叫DDNS动态域名解析的东西,还有一个叫花生壳的软件,下载了一个客户端,很显然解决了我所有的问题。

花生壳域名解析不稳定_花生壳域名解析教程_花生壳域名解析ipv6

不需要自己去注册域名,直接使用花生壳下的子域名就可以,通过客户端可以随时更换域名映射的IP地址,方便快捷。

我再次更改了程序,终于解决了问题。

但很快又出现了一个新问题,我的程序只能允许服务器和客户端之间进行通信,如果第三人或第四人想加入怎么办?

繼續改變!

我们回到今天本文的主题。

经常有人在微信上问我:轩辕,我怎么才能学xxx?我是初学者,还有机会吗?

其实,谁没有从零开始呢?谁在学习的路上没有被人瞧不起、被人出丑呢?俗话说,每个人学习的方式不同,专攻的领域也不同。仅此而已。

从我自己的学习经历来看,如果你想学好技术,仅仅阅读课程和书籍是不够的,你必须亲自动手!

当你真正做一些项目,遇到实际问题的时候,你就会明白各种技术意味着什么,用来解决什么问题,这比你从书本或博客上学到的理解要深刻得多。

工作几年之后发现,大学那几年是我积累最基础知识的时期,工作之后日常工作中和操作系统、计算机网络、数据结构、算法等基础课程知识打交道的机会并不多,更多的时间都花在写API接口,做CRUD,堆砌一堆框架代码块,或者学习如何使用redis,mysql等第三方组件上。

我在大学期间做过以下项目:

-即时通讯应用程序

-静态Web服务器

-远程桌面控制软件

-网络流量修复软件

- 内核ARK工具

虽然每一个都看上去比较粗糙,距离实用还差得很远,但基本的功能已经完成了。而且通过这些东西的开发,不仅让我当时的编程能力提高了不少,在这个过程中,也不断的发现新的技术术语,打下了扎实的基础,学到了很多课本上没有的东西。

如果你是行业新手,我的建议是,你不仅要读书,还要多做实践。光说不练没用,直接上代码吧!

题外话,鸟哥是个喜欢捣鼓的程序员,闲暇时喜欢开发自己的网站、小程序、APP等等,而这些东西都离不开服务器!最近围绕服务器主题建了一个微信群,喜欢玩服务器或者想自己开发一个产品的读者可以进群互相学习!群通知里分享了一套搭建服务器的视频教程给大家,很适合新手学习!不定期还会带大家去领一些服务器相关的优惠券!如果你没兴趣,又不喜欢捣鼓,就没必要进群了!

识别二维码并添加微信后

发送[]获取邀请链接

二维码
扫一扫在手机端查看

本文链接:https://by928.com/5322.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线