快速建立你的伺服器程式 single程序池模型

2021-09-12 06:04:13 字數 2941 閱讀 6791

/* main.c */

#include "lib_acl.h"

#include #include #include #include static char *var_cfg_single_banner;

static int var_cfg_single_timeout;

static acl_config_int_table __conf_int_tab = ,

,};static acl_config_str_table __conf_str_tab = ,

,};static void __service(acl_vstream *stream, char *service, char **ar** acl_unused)

ret = acl_vstream_writen(stream, buf, n);

if (ret != n)

} while (0);

}static void __pre_accept(char *name acl_unused, char **ar** acl_unused)

static void __pre_jail_init(char *name acl_unused, char **ar** acl_unused)

static void __post_jail_init(char *name acl_unused, char **ar** acl_unused)

static void service_exit(char *service acl_unused, char **ar** acl_unused)

int main(int argc, char *ar**)

2.3) 配置檔案:single_echo.cf

service single

/var/log/private/ 目錄下,

# 如果為 n, 則域套介面建立在 /var/log/public/ 目錄下,

master_private = n

master_unpriv = n

# 是否需要 chroot: n -- no, y -- yes

master_chroot = n

# 每隔多長時間觸發一次,單位為秒(僅對 trigger 模式有效)

master_wakeup = -

# 最大程序數

master_maxproc = 10

# 程序程式名

master_command = single_echo

# 程序啟動引數,只能為: -u [是否允許以某普通使用者的身份執行]

# master_args =

# 程序日誌記錄檔案

master_log = /var/log/single_echo.log

# 傳遞給服務子程序的環境變數, 可以通過 getenv("service_env") 獲得此值

# master_env = logme:false, priority:e_log_info, action:e_log_per_day, flush:sync_flush, imit_size:512,\

#   sync_action:e_log_sem, sem_name:/tmp/single_echo.sem

# 每個程序例項處理連線數的最大次數,超過此值後程序例項主動退出

single_use_limit = 250

# 每個程序例項的空閒超時時間,超過此值後程序例項主動退出

# single_idle_limit = 180

# 記錄程序pid的位置(對於多程序例項來說沒有意義)

single_pid_dir = /var/pid

# 程序執行時所在的路徑

single_queue_dir = /var

# 讀寫超時時間, 單位為秒

single_rw_timeout = 1800

# 讀緩衝區的緩衝區大小

single_buf_size = 8192

# 程序執行時的使用者身份

single_owner = root

# single_in_flow_delay = 1

# single_owner = owner

# 用 select 進行迴圈時的時間間隔

# 單位為秒

# single_delay_sec = 1

# 單位為微秒

# single_delay_usec = 5000

# single_daemon_timeout = 1800

}2.4)編譯原始檔

生成 single_echo 可執行程式

make

2.5)拷貝檔案

將 single_echo 拷貝至 acl_project/dist/master/libexec/linux32 (假設作業系統是linux 32位平台的) 目錄,將 single_echo.cf 拷貝至acl_project/dist/master/conf/service/ 目錄,從而將 single_echo 置於 acl_master 守護管理程序的控制範圍內。

2.6) 安裝

cd acl_project/dist/master; chmod 755 setup.sh; ./setup.sh /opt/acl

2.7)啟動框架管理控制程序(acl_master)

/opt/acl/sh/start.sh

2.8)手工測試

telnet 127.0.0.1 5003

看是否正常連線伺服器,如果連線成功,則隨意輸入一些字元然後按回車傳送,看伺服器是否將所傳送的資料回顯給傳送者;如果連線不成功或伺服器未正常回顯,請檢視日誌檔案:/opt/acl/var/log/single_echo,並找出出錯原因。

個人微博:

svn:svn checkout svn: acl-code

github:

qq 群:242722074

國內映象:

使用Python快速建立FTP伺服器

這裡要使用的是乙個python庫 pyftpdlib 幾行 就可以執行出乙個ftp server 在我配置vsftp折騰的夠嗆時發現的這個,如獲至寶 首先用pip安裝 pip install pyftpdlib之後執行 python m pyftpdlibtom ubuntu python m py...

如何建立你自己的Git伺服器?

repogroup 10005 marry,john,violet其中,repogroup是准許接入這個倉庫的組的名字。10005是乙個獨一無二的分組識別數字,marry,john,violet則是獲准接入這個倉庫的使用者。決定git倉庫的路徑。它既可以放在你的home路徑下 e.g.home yo...

svn伺服器的建立

tortoisesvn客戶端 http www.subversion.org.cn index.php?option com weblinks catid 63 itemid 99 2.拷貝伺服器程式bin目錄下檔案到 c svnserve 3.建目錄 d svn repo,作為資料庫目錄 4.建工...