今年要学些计算机网络的知识了,打算学好之后自己做一个小的联机游戏。最好是可以让大家一起玩的。像我这种穷屌丝买不起服务器,只能在自己的电脑上搭建服务器咯。
使用node.js搭建一个简单的服务器
首先可以使用node.js搭建一个简单的服务器(或者你使用python,java也可以):
|
|
这里会将web/index.html
文件展示在页面上。绑定在本地的8080端口。
在局域网下玩耍
现在你有了一个用node.js写的小型服务器了,并且可以运行展示一个页面。那么接下来你就可以将这个页面展示给小伙伴了。你可以在局域网下展示给他们,方法是让你的小伙伴和你共同连接一个局域网(你可以分享你电脑的无线网,或者直接都连接你的手机热点),然后将服务器的监听端口改变成你的无线网IP就行了。
在Mac系统下,你可以这样查看你的无线网IP:
然后改写node.js中的这一行:
|
|
之后你的小伙伴输入你的手机热点IP就可以看到你的网页啦。
将网站放到公网上
如果你的小伙伴和你不在一个局域网下,那么就没办法看到你的网站了。这个时候就要使用网络穿透的手段将自己的电脑穿透到公网上去。
ngrok
最著名的网络穿透工具是ngrok
,官网在这里,你只要进去下载它们的工具,并且注册一个账号就可以使用了。使用的方法很简单,官网教程也说的很清楚教程。
如果你想要使用http协议,那么你就写
|
|
port是你本地的端口号(比如上面的程序就是8080)
如果是tcp协议你就吧http换成tcp就行了。
虽然说这个很有名,但是我的电脑运行之后网站登不上去啊,不知道是不是被墙了。如果你和我一样,那可以看看下面这个。
natapp
natapp是我们国内的,基于ngrok的网络穿透工具。官网在这里。 进去之后和ngrok一样,下载他们的命令行程序,注册一个账号,创建一个网络隧道即可。网上也有很多教程,这里就不赘述了。
natapp一个人可以免费创建两个网络隧道,我就创建了一个http类型的一个tcp类型的。
当你准备好之后,首先在本地把你的nodejs写的服务器转起来,然后再使用natapp指定你的端口号转起来就行了:
这里我点击 http://2psa8j.natappfree.cc 就可以访问我的网站了。
需要注意的是,ngrok和natapp每次打开的时候的域名都是随机的。如果你想要绑定域名的话,ngrok是可以直接绑定的,但是natapp需要付费
http类型的隧道只能展示网页,如果你想要做服务器游戏的话需要tcp类型的隧道,并且还需要一个客户端程序和一个服务器程序:
|
|
|
|
这里客户端一连接,服务器就会打印出客户端的信息,并且返回一个"I recieved your require"。
这里首先得运行natapp,使用你的tcp隧道的authtoken来转,这样就会自动切换到tcp隧道方式:
|
|
然后屏幕上会显示tcp的地址:
这个时候再将你的客户端程序的连接和端口号改成这个:
|
|
注意服务器程序不要更改。
然后运行你的服务器程序,现在你的服务器程序就对应了这个域名了。
然后再运行你的客户端程序,可以看到来自服务器的响应:
这样的话学期末的时候就可以编写服务器游戏啦,到时候如果写出来了Demo我会把源码放在我的github上的。
免费域名
最后再给两个免费域名的资源,你可以在这个网站上申请免费的域名: gearhost这个可以终身使用,但是你的域名后面会有gearhost.xxx的后缀。 freenom这个最长可以免费使用12个月,但是没有自带的后缀。