bbschat.c

来自「bbs server linux平台下软件源码」· C语言 代码 · 共 615 行 · 第 1/2 页

C
615
字号
/* * $Id: bbschat.c,v 1.13 2002/09/02 02:03:31 kcn Exp $ */#include "bbslib.h"#include "netinet/in.h"#include <netdb.h>#include <netinet/in.h>#include <sys/types.h>#ifdef FREEBSD#include <sys/socket.h>         /* need for FreeBSD */#endif#ifdef AIX#include <sys/socket.h>#include <sys/socketvar.h>#endifint chat_fd;int test = 0;char genbuf[1024];struct action {    char *verb;                 /* 动词 */    char *part1_msg;            /* 介词 */    char *part2_msg;            /* 动作 */};struct action party_data[] = {    {"?", "很疑惑的看着", ""},    {"admire", "对", "的景仰之情犹如滔滔江水连绵不绝"},    {"agree", "完全同意", "的看法"},    {"bearhug", "热情的拥抱", ""},    {"bless", "祝福", "心想事成"},    {"bow", "毕躬毕敬的向", "鞠躬"},    {"bye", "看着", "的背影,凄然泪下。身后的收音机传来邓丽君的歌声:\\n\"何日君再来.....\""},    {"caress", "轻轻的抚摸", ""},    {"cat", "像只小猫般地依偎在", "的怀里撒娇。"},    {"cringe", "向", "卑躬屈膝,摇尾乞怜"},    {"cry", "向", "嚎啕大哭"},    {"comfort", "温言安慰", ""},    {"clap", "向", "热烈鼓掌"},    {"dance", "拉着", "的手翩翩起舞"},    {"dogleg", "对", "狗腿"},    {"drivel", "对著", "流口水"},    {"dunno", "瞪大眼睛,天真地问:", ",你说什麽我不懂耶... :("},    {"faint", "晕倒在", "的怀里"},    {"fear", "对", "露出怕怕的表情"},    {"fool", "请大家注意", "这个大白痴....\\n真是天上少有....人间仅存的活宝....\\n不看太可惜了!"},    {"forgive", "大度的对", "说:算了,原谅你了"},    {"giggle", "对著", "傻傻的呆笑"},    {"grin", "对", "露出邪恶的笑容"},    {"growl", "对", "咆哮不已"},    {"hand", "跟", "握手"},    {"hammer", "举起好大好大的铁锤!!哇!往",     "头上用力一敲!\\n***************\\n*  5000000 Pt *\\n***************\\n      | |      %1★%2☆%3★%4☆%5★%6☆%0\\n      | |         好多的星星哟\\n      |_|"},    {"heng", "看都不看", "一眼, 哼了一声,高高的把头扬起来了,不屑一顾的样子..."},    {"hug", "轻轻地拥抱", ""},    {"idiot", "无情地耻笑", "的痴呆。"},    {"kick", "把", "踢的死去活来"},    {"kiss", "轻吻", "的脸颊"},    {"laugh", "大声嘲笑", ""},    {"lovelook", "拉着", "的手,温柔地默默对视。目光中孕含着千种柔情,万般蜜意"},    {"nod", "向", "点头称是"},    {"nudge", "用手肘顶", "的肥肚子"},    {"oh", "对", "说:“哦,酱子啊!”"},    {"pad", "轻拍", "的肩膀"},    {"papaya", "敲了敲", "的木瓜脑袋"},    {"pat", "轻轻拍拍", "的头"},    {"pinch", "用力的把", "拧的黑青"},    {"puke", "对着", "吐啊吐啊,据说吐多几次就习惯了"},    {"punch", "狠狠揍了", "一顿"},    {"pure", "对", "露出纯真的笑容"},    {"qmarry", "向", "勇敢的跪了下来:\\n\"你愿意嫁给我吗?\"\\n---真是勇气可嘉啊"},    {"report", "偷偷地对", "说:“报告我好吗?”"},    {"shrug", "无奈地向", "耸了耸肩膀"},    {"sigh", "对", "叹了一口气"},    {"slap", "啪啪的巴了", "一顿耳光"},    {"smooch", "拥吻著", ""},    {"snicker", "嘿嘿嘿..的对", "窃笑"},    {"sniff", "对", "嗤之以鼻"},    {"sorry", "痛哭流涕的请求", "原谅"},    {"spank", "用巴掌打", "的臀部"},    {"squeeze", "紧紧地拥抱著", ""},    {"thank", "向", "道谢"},    {"tickle", "咕叽!咕叽!搔", "的痒"},    {"waiting", "深情地对", "说:每年每月的每一天,每分每秒我都在这里等着你"},    {"wake", "努力的摇摇", ",在其耳边大叫:“快醒醒,会着凉的!”"},    {"wave", "对著", "拼命的摇手"},    {"welcome", "热烈欢迎", "的到来"},    {"wink", "对", "神秘的眨眨眼睛"},    {"xixi", "嘻嘻地对", "笑了几声"},    {"zap", "对", "疯狂的攻击"},    {"inn", "双眼饱含着泪水,无辜的望着", ""},    {"mm", "色眯眯的对", "问好:“美眉好~~~~”。大色狼啊!!!"},    {"disapp", "这下没搞头啦,为什么", "姑娘对我这个造型完全没反应?没办法!"},    {"miss", "真诚的望着", ":我想念你我真的想念你我太--想念你了!你相不相信?"},    {"buypig", "指着", ":“这个猪头给我切一半,谢谢!”"},    {"rascal", "对", "大叫:“你这个臭流氓!!!!!!!!!!!!!!!!”"},    {"qifu", "小嘴一扁,对", "哭道:“你欺负我,你欺负我!!!”"},    {"wa", "对", "大叫一声:“哇哇哇哇哇哇酷弊了耶!!!!!!!!!!!!!!”"},    {"feibang", "喔--!熟归熟,", "你这样乱讲话,我一样可以告你毁谤,哈!"},    {NULL, NULL, NULL}};struct action speak_data[] = {    {"ask", "询问", NULL},    {"chant", "歌颂", NULL},    {"cheer", "喝采", NULL},    {"chuckle", "轻笑", NULL},    {"curse", "咒骂", NULL},    {"demand", "要求", NULL},    {"frown", "蹙眉", NULL},    {"groan", "呻吟", NULL},    {"grumble", "发牢骚", NULL},    {"hum", "喃喃自语", NULL},    {"moan", "悲叹", NULL},    {"notice", "注意", NULL},    {"order", "命令", NULL},    {"ponder", "沈思", NULL},    {"pout", "噘著嘴说", NULL},    {"pray", "祈祷", NULL},    {"request", "恳求", NULL},    {"shout", "大叫", NULL},    {"sing", "唱歌", NULL},    {"smile", "微笑", NULL},    {"smirk", "假笑", NULL},    {"swear", "发誓", NULL},    {"tease", "嘲笑", NULL},    {"whimper", "呜咽的说", NULL},    {"yawn", "哈欠连天", NULL},    {"yell", "大喊", NULL},    {NULL, NULL, NULL}};struct action condition_data[] = {    {":D", "乐的合不拢嘴", NULL},    {":)", "乐的合不拢嘴", NULL},    {":P", "乐的合不拢嘴", NULL},    {":(", "乐的合不拢嘴", NULL},    {"applaud", "啪啪啪啪啪啪啪....", NULL},    {"blush", "脸都红了", NULL},    {"cough", "咳了几声", NULL},    {"faint", "咣当一声,晕倒在地", NULL},    {"happy", "的脸上露出了幸福的表情,并学吃饱了的猪哼哼了起来", NULL},    {"lonely", "一个人坐在房间里,百无聊赖,希望谁来陪陪。。。。", NULL},    {"luck", "哇!福气啦!", NULL},    {"puke", "真恶心,我听了都想吐", NULL},    {"shake", "摇了摇头", NULL},    {"sleep", "Zzzzzzzzzz,真无聊,都快睡著了", NULL},    {"so", "就酱子!!", NULL},    {"strut", "大摇大摆地走", NULL},    {"tongue", "吐了吐舌头", NULL},    {"think", "歪著头想了一下", NULL},    {"wawl", "惊天动地的哭", NULL},    {NULL, NULL, NULL}};int main(){    char t[80];    int pid;    init_all();    if (!loginok) {        http_fatal("错误,请先登录");        exit(0);    }    if (!can_enter_chatroom())        http_fatal("您不能进入" CHAT_SERVER);    strsncpy(t, getparm("t"), 80);    pid = atoi(getparm("pid"));    if (pid == 0)        reg();    if (pid > 0) {        if (kill(pid, 0) != 0) {            printf("<script>top.location='about:您已经断线或已有1个窗口进入聊天室了.'</script>");            exit(0);        }    }    if (!strcmp(t, "frm"))        show_frm(pid);    if (!strcmp(t, "chatsnd"))        chatsnd(pid);    if (!strcmp(t, "frame_input"))        frame_input(pid);    if (!strcmp(t, "chatrefresh")) {        test = 1;        chatrefresh(pid);    }    printf("err cmd");}int reg(){    int n, pid;    if (pid = fork()) {        sprintf(genbuf, "bbschat?pid=%d&t=frm", pid);        redirect(genbuf);        http_quit();    }    for (n = 0; n < 1024; n++)        close(n);    pid = getpid();    agent(pid);    exit(0);}int show_frm(int pid){    printf("<frameset rows=\"0,0,*,48,16\" frameborder=\"0\">\n" "	<frame name=\"hide\" src=\"\">\n" "	<frame name=\"hide2\" src=\"\">\n"           /*            * "  <frame name=\"hide3\" src=\"/chataid.html\">\n"             */           "	<frame name=\"main\" src=\"\">\n"           "	<frame scrolling=\"auto\" marginheight=\"1\" framespacing=\"1\" name=\"input\" src=\"bbschat?t=frame_input&pid=%d\">\n"           "	<frame scrolling=\"no\" marginwidth=\"4\" marginheight=\"1\" framespacing=\"1\" name=\"foot\" src=\"bbsfoot\">\n" "	</frameset>\n" "	</html>\n", pid);    http_quit();}int frame_input(int pid){    printf(" <script>\n"           "		function r1() {\n"           "			top.hide2.location='bbschat?t=chatrefresh&pid=%d';\n"           "			setTimeout('r1()', 10000);\n"           "		}\n"           "		setTimeout('r1()', 500);\n"           "	</script>\n"           "	<body onload=\"document.form1.in1.focus()\">\n"           "	<nobr>\n"           "	<form onsubmit=\"add_cc()\" name=\"form1\" action=\"bbschat?pid=%d&t=chatsnd\" method=\"post\" target=\"hide\">\n"           "	输入: <input name=\"in1\" maxlength=\"60\" size=\"56\">\n"           "	<input type=\"submit\" value=\"发送\">\n"           "	<script>\n"           "		var cc, cc2;\n"           "		cc='';\n"           "		function add_cc0(x1, x) {\n"           "			cc2=x1;\n"           "			cc=x;\n"           "		}\n"           "		function do_quit() {\n"           "			if(confirm('您真的要退出了吗?')) {\n"           "				form1.in1.value='/b';\n"           "				form1.submit();\n"           "			}\n"           "		}\n"           "		function do_help() {\n"           "			open('/chathelp.html', '_blank', \n"           "			'toolbar=yes,location=no,status=no,menubar=no,scrollbar=auto,resizable=yes,width=620,height=400');\n"           "		}\n"           "		function do_alias(x) {\n"           "			form1.in1.value=x;\n"           "			form1.submit();\n"           "		}\n"           "		function do_room() {\n"           "			xx=prompt('请输入包厢名称','');\n"           "			if(xx=='' || xx==null) return;\n"           "			form1.in1.value='/j '+ xx;\n"           "			form1.submit();\n"           "		}\n"           "		function do_user() {\n"           "			form1.in1.value='/l';\n"           "			form1.submit();\n"           "		}\n"           "		function do_r() {\n"           "			form1.in1.value='/r';\n"           "			form1.submit();\n"           "		}\n"           "		function do_w() {\n"           "			form1.in1.value='/w';\n"           "			form1.submit();\n"           "		}\n"           "		function do_msg() {\n"           "			xx=prompt('给谁丢小纸条','');\n"           "			if(xx=='' || xx==null) return;\n"           "			yy=prompt('什么内容','');\n"           "			if(yy=='' || xx==null) return;\n"           "			form1.in1.value='/m '+xx+' '+yy;\n"           "			form1.submit();\n"           "		}\n"           "		function do_n() {\n"           "			xx=prompt('你想改成什么名字?','');\n"           "			if(xx=='' || xx==null) return;\n"           "			form1.in1.value='/n '+xx;\n"           "			form1.submit();\n"           "		}\n"           "		function do_pic() {\n"           "			xx=prompt('请输入图片的URL地址:','http://');\n"           "			if(xx=='http://' || xx=='' || xx==null) return;\n"           "			form1.in1.value='<img src=\"'+xx+'\">';\n"           "			form1.submit();\n"           "		}\n"           "	</script>\n" "	<select onChange=\"do_alias(this.options[this.selectedIndex].value);this.selectedIndex=0;\">\n" "        <option value=\" \" selected>聊天动作</option>\n"           /*            * "        <option value=\"//hehe\">呵呵的傻笑</option>\n"             */           "	<option value=\"//faint\">要晕倒了</option>\n"           "	<option value=\"//sleep\">要睡着了</option>\n"           "	<option value=\"//:D\">乐滋滋的</option>\n"           "	<option value=\"//nod\">点头</option>\n"           "	<option value=\"//so\">就这样</option>\n"           "	<option value=\"//shake\">摇摇头</option>\n"           "	<option value=\"//luck\">真幸运啊</option>\n"           "	<option value=\"//tongue\">吐吐舌头</option>\n"           "	<option value=\"//blush\">脸红了</option>\n"           "	<option value=\"//applaud\">热烈鼓掌</option>\n"           "	<option value=\"//cough\">咳嗽一下</option>\n"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?