荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: jjk (kernel), 信区: InstallBBS
标 题: Re: 一个c/s结构的bbs接口协议详细说明[fwd]
发信站: 荔园晨风BBS站 (Sun Mar 10 09:46:44 2002), 转信
【 以下文字转载自 jjk 的信箱 】
【 原文由 jjk.bbs@bbs.nju.edu.cn 所发表 】
发信人: zhch (zhch), 信区: BBSDev
标 题: Re: 一个c/s结构的bbs接口协议详细说明[fwd]
发信站: 南京大学小百合站 (Sat Mar 9 22:23:49 2002), 站内信件
这个程序名称是lily icu, 需要通过类似sbbsd的daemon来启动.
代码如下, 和sbbsd基本一样:
#include "/home/bbs/bbssrc/include/bbs.h"
#include "netinet/in.h"
int main(int arg_num, char *arg_val[]) {
static struct sockaddr_in xs;
int port=27027, n, fd, fd2, o=1;
chdir(BBSHOME);
setuid(BBSUID);
if(fork()) exit(0);
for(n=0; n<=getdtablesize(); n++) close(n);
for(n=1; n<=NSIG; n++) signal(n, SIG_IGN);
if(arg_num>1) port=atoi(arg_val[1]);
xs.sin_family=AF_INET;
xs.sin_port=htons(port);
fd=socket(AF_INET, SOCK_STREAM, 0);
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char*) &o ,sizeof(o));
if(bind(fd, (struct sockaddr*) &xs, sizeof xs) <0) exit(1);
if(listen(fd, 4)<0) exit(1);
umask((mode_t) 022);
n=sizeof xs;
while(1)
if((fd2=accept(fd, (struct sockaddr*) &xs, &n)) >0) {
if(fork()==0) break;
close(fd2);
}
dup2(fd2, 0);
if(fd2!=1) dup2(fd2, 1);
if(fd2!=2) dup2(fd2, 2);
if(fd2>=3) close(fd2);
execl("bin/icq", "icq", "h", (char*) inet_ntoa(xs.sin_addr), NULL);
}
【 在 zhch (zhch) 的大作中提到: 】
: 一个c/s结构的bbs接口协议详细说明
: 代码下载: http://bbs.nju.edu.cn/download/icq.c
: 更新时间: 2001-08-1
: 这是一套for FB的bbs接口程序.
: 这个程序使用了NJU WEB BBS 0.9的BBSLIB.inc.
: 程序说明:
: 函数参数按名存取, 可随意增减, 扩展性强.
: 参数名称大小写不敏感.
: 所有函数(除login外), 都要登录成功后才能使用.
: 返回值:
: 成功返回1, 出口参数将被赋值.
: 失败返回0, 出口参数不赋值, error存放具体出错信息.
: 1, int login(id, pw, ...)
: 函数作用: 用户登录
: 入口参数:
: id: 用户名
: pw: 密码
: 出口参数:
: UTMPNUM: 在线信息1 (cgi用)
: UTMPKEY: 在线信息2 (cgi用)
: (以下引言省略 ... ...)
--
zhch.bbs@bbs.nju.edu.cn
※ 来源:.南京大学小百合站 bbs.nju.edu.cn.[FROM: dsl.nju.edu.cn]
--
※ 转寄:.南京大学小百合站 bbs.nju.edu.cn.[FROM: 深圳大学BBS]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店