⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ns.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// Huthar's name service#define log(a) log_file("ns.log",ctime(time())+":"+a)//#define log(a) tell_object(find_player("huthar"),a)#include <net/socket.h>#include <net/daemons.h>mapping sockets;mapping muds;void read_parse_line(int fd, string msg);void do_lookup(int fd, string mud, string service);void do_dump(int fd);void connect_socket(int fd){   sockets[fd] = "";}void read_parse_line(int fd, string msg){   string cmd, arg, arg1, arg2;   object ob;   if(sscanf(msg, "CMD:%s %s", cmd, arg))   {      if(cmd == "LOOKUP")      {         if(arg == "ALL")         {            do_dump(fd);            return;         }         if(!sscanf(arg,"%s %s", arg1, arg2))         {            arg1 = arg;            arg2 = "DEFAULT";         }         do_lookup(fd, arg1, arg2);      }      else      {         socket_write(fd, "Unknown command\n");      }   }}void shutdown_socket(int fd){   log("FD shutdown.\n");   map_delete(sockets,fd);}create(){   sockets = ([]);   muds = NAME_SERVER->query_data();}void do_lookup(int fd, string mud, string service){   string address, port;   address = (string)NAME_SERVER->get_host_name(mud);   port = (int)NAME_SERVER->get_mudresource(mud, service)+"";   if(address == "")   {      socket_write(fd, "NOT FOUND\n");      return;   }   socket_write(fd, address+":"+port+"\n");}void do_dump(int fd){   mapping muds;   string *k;   int i;   muds = (mapping)NAME_SERVER->query_muds();   k = keys(muds);   for(i = 0; i < sizeof(k); i++)   {      if(k[i] == "DEFAULT")         continue;      socket_write(fd, k[i]+":"+muds[k[i]]["address"]);      socket_write(fd,":"+muds[k[i]]["port"]+"\n");   }}

⌨️ 快捷键说明

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