文字MUD游戏论坛-天下泥潭群英会-水泊梁山  

返回   文字MUD游戏论坛-天下泥潭群英会-水泊梁山 > 西游之旅 > 『 巫师天下 』

『 巫师天下 』 学习如何挂MUD,如何制作MUD。讨论如何管理好一个MUD,做好一个巫师。

发表新主题 回复
 
LinkBack 主题工具 主题评分 显示模式
旧 2011-12-03   #1
高级会员
级别:6 | 在线时长:109小时 | 升级还需:31小时级别:6 | 在线时长:109小时 | 升级还需:31小时级别:6 | 在线时长:109小时 | 升级还需:31小时
 
Odysseus 的头像
 
注册: 08年04月11日
来自: 盘丝洞
帖子: 311
声望力: 21
声望: 50 Odysseus 初领妙道
现金:29两梁山币
资产:1245两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
BBS式天气预报

一塌糊涂 BBS -- 文章阅读 [讨论区: Mud_Builder]
--------------------------------------------------------------------------------
发信人: cloner (!!!!!!!), 信区: Mud_Builder
标 题: getweb_d.c
发信站: 一塌糊涂 BBS (Sat Sep 15 12:54:35 2001)

以前就想过做象bbs那样的天气预报的东西,
一直懒惰,这些天pkuxkx.org 5555开张,
想着送点程序吧,就弄了这么一个东西,
不过我不会正则分析那一套,所以智能
针对一个站点的一个页面做,呵呵。

//getweb_d.c
//从网络上抓取信息,
//本例子为抓取来自:"202.106.184.193"的天气预报信息。
#include < net/socket.h >
#include
#define SITE "202.106.184.193"
inherit F_DBASE;
int have_get=0;
int fail=0;
string msg="";
int check_time();
void close(int);
void write_s(int);
void create()
{
set("channel_id","天气预报");
seteuid(getuid());
check_time();
}
int check_time()
{
mixed* times=localtime(time());
int hours=times[2];
int fd,fc;
if(hours==3 && ! have_get)//每天3点开始抓网页
{
if(fd=socket_create(STREAM,"read_callback")<0)
{
write("socket_create error "+fd+"\n");
return 1;
}
if((fc=socket_connect(fd,SITE+" 80","read_callback","write_callback
"))!= EESUCCESS)
{
close(fd);
write("socket_connect error "+fc+"\n");
return 1;
}
remove_call_out("write_s");
call_out("write_s",2,fd);
remove_call_out("close");
call_out("close",20,fd);//等待二十秒,过时认为连接失败。
}
if(hours==12)
{
have_get=0;//12点清除标记
msg="";
fail=0;
}
remove_call_out("check_time");
call_out("check_time",15*60);
return 1;
}
void read_callback(int fd,mixed val)
{
msg+=sprintf("%O",val);
}
void write_callback(int fd)
{
return;
}
void close(int fd)
{
string sun;
string gaowen;
string diwen;
string fengli;
write("close start\n");
if(strsrch(msg,"HTTP/1.1 200 OK")!=-1) //成功读取
{
//这些字符串分析与具体网页相关。
int index,index2;
string* msgArray=({});
index=strsrch(msg,"北京");
msg=msg[index..sizeof(msg)];
index2=strsrch(msg,"");
msg=msg[0..index2-1];
msg=replace_string(msg,"/","");
msgArray=explode(msg,"
Odysseus 当前离线  
回复时引用此帖

发表新主题 回复

添加到书签


发帖规则
不可以发表主师
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子

论坛启用 vB 代码
论坛启用 表情图标
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为格林尼治时间 +9, 现在的时间是 19:07.


Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue

Content Relevant URLs by vBSEO 3.6.1