[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] [分享]批处理网络服务器

10年前就接触过一个很强大的工具"netcat",应用它,可以开发批处理版的网络程序,比如:4人斗地主。
只要你有创意,就有无限可能。比如namejm的下载MP3,就无需迅雷,FLASHGET了。

我这里做一个简单演示,是早前做的批处理游戏(有时间做一个强大的互动的批处理网游)。
在CMD里输入以下命令,即可。
  1. mode con: lines=32 cols=90
  2. telnet caruko.gicp.net 1234
复制代码

要实现HTTP下载功能还是做不到的吧,HTTP的数据包用nc怎么封装。多人联机不知道可行不可行,印象中nc貌似做不到多线程.
天道酬勤

TOP

可以下载。
构建一个HTTP包,然后发送给服务器。

::msg.txt
  1. GET /music/adgy.mp3 HTTP/1.1
  2. Accept:*/*
  3. Accept-Language:zh-cn
  4. Accept-Encoding:gzip,deflate
  5. If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT
  6. If-None-Match:W/"80b1a4c018f3c41:8317"
  7. User-Agent:NetCat (windows xp)
  8. Host:ourxh.com
  9. Connection:close
复制代码
::cmd
  1. type msg.txt|nc ourxh.com 80>new.mp3
  2. start new.mp3
复制代码
我用这个测试,能够下载MP3,正常播放。


另外,多人网络游戏并非不可行,NC以及CMD都是单线程,但是采用如下构造。

服务器端:
  1. :loop
  2. nc 监听 1234 端口,绑定一个BAT。该BAT实现 set /a port+=1,输出%port%(返回给客户端了),同时start NC  监听1235端口,绑定游戏处理BAT。
  3. goto loop
  4. rem 当第2个人连接过来时,port+=1,监听1236等待客户端连接。一直循环....
  5. rem 游戏BAT,需要在本地解决多线程,可以用临时文件解决。
复制代码
客户端
  1. for /f %%i in ('nc -z server 1234') do nc server %%i
  2. rem 通过返回的端口号,再NC连接过去即可。
复制代码

TOP

首先先佩服一下lz的研究精神.
HTTP包制造法之前有听说过,从没实践过,原来是真的。
用临时文件来达到沟通是个不错的想法,如果大量数据交换的时候效率肯定会低下,虽然跟传统软件没有可比性,不过对批处理来说也算是个挑战吧。
天道酬勤

TOP

想必这里许多人有兴趣
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

好吧,我正准备通过这个方法写个多人斗地主。

目前在写一个GDI的第三方程序,华丽的界面才给力啊,可惜C,VB方面不熟悉,用AU3写,程序会大一点了。

TOP

GDI程序完成了,按参数顺序依次画上去,下面是效果图。
PS:54张牌截图截的吐啊..

TOP

返回列表