freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

一種遠程管理linux系統(tǒng)工具的設(shè)計與實現(xiàn)—免費計算機-資料下載頁

2025-08-24 11:23本頁面
  

【正文】 gtk_table_set_col_spacing(GTK_TABLE(table),1,35)。 gtk_entry_set_text((GtkEntry *)textbox,input severs IP here!)。 text = gtk_entry_get_text((GtkEntry *)textbox)。 gtk_table_attach_defaults((GtkTable*)table,clloLabl,0,1,0,1)。 gtk_table_attach_defaults((GtkTable*)table,textbox,1,2,0,1)。 gtk_table_attach_defaults((GtkTable*)table,clloButt,0,2,1,2)。 gtk_table_attach_defaults((GtkTable*)table,exitButt,0,2,2,3)。 gtk_container_set_border_width (GTK_CONTAINER (mainWin), 0)。 gtk_container_add (GTK_CONTAINER (mainWin), table)。 gtk_signal_connect(GTK_OBJECT(exitButt),clicked,GTK_SIGNAL_FUNC(Destroy),NULL)。 gtk_signal_connect(GTK_OBJECT(mainWin),destroy,NULL,NULL)。 gtk_signal_connect(GTK_OBJECT(clloButt),clicked,GTK_SIGNAL_FUNC(CollFunc), sock)。 gtk_signal_connect_object(GTK_OBJECT(exitButt),clicked,GTK_SI GNAL_FUNC(Destroy),GTK_OBJECT(mainWin))。 gtk_widget_show(mainWin)。 gtk_widget_show(exitButt)。 gtk_widget_show(clloButt)。 gtk_widget_show(clloLabl)。 gtk_widget_show(textbox)。 gtk_widget_show(table)。 gtk_main()。}上面函數(shù)大概反映了 GTK 變成中常用的構(gòu)件和函數(shù)。前面對里面大部分代碼介紹過了。這里就不詳細介紹了。但是需要指出的是gtk_signal_connect(GTK_OBJECT(clloButt),clicked,GTK_SIGNAL_FUNC(CollFunc), sock)。這個函數(shù)主要是用來綁定 X 事件,也就是當(dāng)用戶按下了連接按鈕后調(diào)用 CollFunc()這個函數(shù)。CollFunc()主要作用是讀取文本框中的字符,并且用這個來作為連接服務(wù)器的IP,向服務(wù)器提出連接請求,連接成功就進入主界面,并且銷毀連接界面的構(gòu)件。不成功就返回到連接界面。CollFunc()函數(shù)如下:void CollFunc( GtkWidget *widget,gpointer data ) { int *sock,result。 char *text = NULL。 sock = data。 text = gtk_entry_get_text((GtkEntry *)textbox)。 *sock = make_cli_sock(text,13000)。 if(*sock 0){return 。} init_cli(sock)。 mainform(sock)。 gtk_widget_destroy(mainWin)。}? 主界面當(dāng)用戶端和服務(wù)器端連接成功后,就進入主窗體流程了,在主窗體建立前要接收一些從服務(wù)程序發(fā)送過來的數(shù)據(jù),然后把這些數(shù)據(jù)存放到一些臨時文件里面,等待具體創(chuàng)建窗體的時候調(diào)用這些數(shù)據(jù)來初始化界面。其流程如圖 11 所示。圖 11 主界面的大概流程圖主窗體有各個功能模塊的操作頁面,程序主界面如圖 12 所示。圖 12 程序主界面(1)用戶操作Linux 是一個多用戶、多任務(wù)的操作系統(tǒng)。在用戶操作方面我們主要實現(xiàn)的是對用戶的添加,刪除和修改。當(dāng)主界面創(chuàng)建好了后就等待用戶的操作了,用戶的操作界面如圖 13所示。圖 13 用戶操作界面 添加用戶:當(dāng)用戶按了添加用戶按鈕后,就調(diào)用了 User_Add()函數(shù)對這個事件來響應(yīng)。其功能是創(chuàng)建一個臨時界面,讓用戶輸入要添加的用戶的用戶名和密碼,在判斷了輸入文把控制權(quán)戰(zhàn)時交給了 X 系統(tǒng)等待用戶操作Apachegtk_main()UserControlgtk_widow_newGroupControlInitServerDNSftp本框都不為空的時候,先傳遞給服務(wù)器一個“User”字符串,再傳遞一個一個“adduser”字符串,這些的傳遞是為了讓服務(wù)器能夠首先通過判斷這些字符串來到添加用戶流程里面。其界面如圖 14 所示。圖 14 添加用戶界面當(dāng)圖 14 的 Entry 按鍵被按下了后,就從上圖中的文本框中讀取字符串,再判斷字符串是否為空,不為空就把 UserNane,FullName,Password 所對應(yīng)的字符串分別傳遞服務(wù)器端。讓服務(wù)器端通過傳遞過來的數(shù)據(jù)實現(xiàn)添加用戶。然后再從服務(wù)器端讀取操作的結(jié)果。在把結(jié)果顯示給用戶。如圖 15 所示。圖 15 添加用戶返回刪除用戶:選種了列表中的要刪除的用戶,這個時候程序會調(diào)用selection_call_back()函數(shù)。把用戶所選種的列表框的用戶的信息保存在全句變量中。刪除按鈕后被按下了后,就調(diào)用 User_Del()函數(shù)。User_Del()函數(shù)先向服務(wù)器發(fā)送一個“User”字符串,和傳遞一個“deluser”字符串,然后就把要刪除的用戶名發(fā)送給服務(wù)程序。再接收服務(wù)程序發(fā)送過來的操作結(jié)果,顯示給用戶。修改用戶:當(dāng)用戶從列表框里面選中了要修改的用戶后,和刪除用戶操作一樣的會調(diào)用 selection_call_back()函數(shù),把操作用戶所選中的用戶保存在一個全局變量中。圖 14中的 Porperty 被點擊了后,創(chuàng)建一個臨時的窗體,用來顯示當(dāng)前所選中的用戶屬性。并且向服務(wù)程序發(fā)送一個“User”字符串,其界面圖如 16 所示。圖 16 用戶屬性界面OK 按鈕所觸發(fā)的事件是先向服務(wù)器發(fā)送一個“property”字符串,然后讀取文本框中的數(shù)據(jù),把這些數(shù)據(jù)一起發(fā)送給服務(wù)程序。cancel 按鈕所觸發(fā)的事件是向服務(wù)器發(fā)送一個“exit”字符串。刷新按鈕所觸發(fā)的事件是:調(diào)用 UserScan()函數(shù)。這個函數(shù)主要作用是向服務(wù)器端發(fā)送一個“userscan”字符串,然后服務(wù)程序會讀取這個時候的/etc/passwd 的內(nèi)容,并且傳遞給發(fā)送到客戶程序,客戶程序把服務(wù)程序傳過來的數(shù)據(jù)存儲在臨時的文件里面,然后把列表框中的數(shù)據(jù)清空,在從臨時文件中讀取當(dāng)前的用戶信息,重新顯示在列表框中來。(2) 用戶組的操作:具有某種共同特征的用戶集合起來就是用戶組(Group) 。在Linux 系統(tǒng)中文件的訪問權(quán)限有這嚴(yán)格的規(guī)定,組在 Linux 系統(tǒng)中有很重要的作用。和上面用戶的操作過程大概相同,當(dāng)組頁面建立好了后,馬上就從客戶端創(chuàng)建的臨時文件中讀取服務(wù)器當(dāng)前的組狀態(tài)。用來初始化列表。組的操作的界面如圖 17 所示。添加組:添加組的事件是在 GroupAdd 按鈕按下了后,先是向服務(wù)程序發(fā)送一個“group”字符串和“addgroup”字符串。然后再把從組添加組界面得到的數(shù)據(jù)發(fā)送到服務(wù)程序。等服務(wù)程序返回結(jié)果了后,再把服務(wù)程序返回的結(jié)果顯示給用戶。刪除組:刪除組的操作大概過程和刪除用戶相似,也是在選中了要刪除的組后,調(diào)用group_selection_call_back()函數(shù),來把組的組名等信息存儲在一個全局變量中。當(dāng)用戶按下了 GroupDel 按鈕后,向服務(wù)器端發(fā)送一個“group”字符串和一個“delgroup”字符串,然后發(fā)送要刪除的組名到服務(wù)器程序。通過服務(wù)器程序來刪除服務(wù)器端的組。接收服務(wù)程序發(fā)送過來的操作結(jié)果,把結(jié)果顯示給用戶。刷新組:當(dāng)刷新按鈕被按下了后就調(diào)用 group_fresh_button_click ()函數(shù)。這個函數(shù)主要作用是向服務(wù)器端發(fā)送“group”字符串和“refresh_group”字符串,然后服務(wù)程序會讀取這個時候的組配置文件的內(nèi)容,傳遞給客戶程序,客戶程序把服務(wù)器傳過來的數(shù)據(jù)存儲在臨時的文件里面,然后把列表框中的數(shù)據(jù)清空,再從臨時文件中讀取當(dāng)前的用戶信息,重新顯示在列表框中來。圖 17 用戶組的操作界面圖(3) 系統(tǒng)服務(wù)初始化系統(tǒng)服務(wù)初始化,主要是對系統(tǒng)要啟動的服務(wù)管理,是否要在系統(tǒng)啟動的時候啟動這些服務(wù)。在 Linux 系統(tǒng)中有 60 多個啟動服務(wù),但是這里我們就選了五個常用的服務(wù)來配置。操作界面如圖 18 所示。圖 18 系統(tǒng)啟動服務(wù)管理當(dāng)這個界面創(chuàng)建好了后,就要從服務(wù)器端接收一個字符串?dāng)?shù)組,這個字符串?dāng)?shù)組只有0 或者 1。客戶端接收了數(shù)組后,通過這些字符來判斷當(dāng)前服務(wù)器的啟動項目中有沒有這些服務(wù)的啟動,有就在相應(yīng)的服務(wù)上面打勾,沒有就不打。用于顯示服務(wù)名的構(gòu)件是 check按鈕構(gòu)件,這個構(gòu)件是特殊的按鈕。這些按鈕所對應(yīng)的事件是設(shè)置其 Active 屬性。Save 按鈕所對應(yīng)的回調(diào)函數(shù)是 main_init_save_click(),該函數(shù)先向服務(wù)程序發(fā)送“sysconfig”和“save”字符串。然后分別讀取 5 個 check 按鈕的 Active 屬性,再根據(jù)其 Active 屬性來設(shè)置要發(fā)送的數(shù)據(jù),然后就是發(fā)送數(shù)據(jù)到服務(wù)程序。Freash 按鈕對應(yīng)的回調(diào)函數(shù)作用,是先發(fā)送一個“sysconfig”和“freash”字符串,然后就接收服務(wù)器端的數(shù)據(jù),通過傳過來的數(shù)據(jù)來設(shè)置每個開關(guān)按鈕的 Active 屬性。(4) DNS 服務(wù)管理操作DNS 服務(wù)是一個 IP 到域名的轉(zhuǎn)換服務(wù),其配置界面如圖 19 所示。圖 19 DNS 的配置界面DNS 中所顯示服務(wù)器的 zone 是采用樹構(gòu)件,這個構(gòu)件在創(chuàng)建的時候就要對其初始化。也就是把接收到的服務(wù)器的信息建立在樹構(gòu)件里面,樹的構(gòu)件過程相對列表要復(fù)雜點。先是從臨時的 DNS 配置文件中讀取 zone 的名字,顯示在樹的根部,然后再向服務(wù)程序發(fā)送zone 的名字,服務(wù)器端再通過 zone 的名字,將從其對應(yīng)的數(shù)據(jù)文件中讀取 Domain 的信息,再返回給客戶端,客戶端接收了這個返回信息后,通過信息來建立子樹。添加 zone:添加 zone 按鈕所對應(yīng)的事件,調(diào)用 main_dns_addzone_click()函數(shù),然后建立一個臨時的窗體,用來記錄要創(chuàng)建的 zone 名字和類型。然后再讀取這些信息后,向服務(wù)器端發(fā)送一個“dnsconfig”字符串和一個“addtozone”字符串和記錄的 zone 名字和類型。讓服務(wù)器通過發(fā)送的字符來添加 zone。最后接收一個由服務(wù)程序發(fā)回來的返回值,并顯示添加的操作是否成功。刪除 zone:當(dāng)用戶選用了一個頂樹,把樹的名字傳遞給一個全局變量中,然后向服務(wù)器發(fā)送一個“dnsconfig”字符串和一個“delzone”字符串,后就向服務(wù)程序傳送要刪除的 zone 的名。然后接收一個由服務(wù)器返回來的值,并顯示刪除操作是否成功。在 zone 添加成功后,有時候我們要向 zone 里面添加和刪除一些 Domain 的信息。下面就是這些操作的過程。添加 Domain:addDomain 按鈕的回調(diào)函數(shù)作用是:顯示一個窗題,并且在窗體中輸入了要添加到 zone 的 domain 后,并且按下了確定按鈕后,先向服務(wù)端發(fā)送一個“dnsconfig”和一個“addtozone”字符串,讓服務(wù)程序進入添加的 domian 流程,然后把窗體文本框的數(shù)據(jù)讀取后發(fā)送到服務(wù)程序。(5) Apache 服務(wù)Apache 服務(wù)是一個 WEB 服務(wù),其配置界面如圖 20 所示。圖 20 Apache 配置界面在它的界面建立的同時,也要從一個臨時文件中讀取從服務(wù)程序傳送過來的原配置文件的信息,示給用戶,用戶可以通過文本框和 Label 看到現(xiàn)在 Apache 配置文件的一部分信息。VieErroLog 按鈕的回調(diào)函數(shù)作用:先向服務(wù)器端發(fā)送“Apachecon”和“viewlog”字符串,等服務(wù)器端從錯誤日志文件中讀取數(shù)據(jù),然后把數(shù)據(jù)發(fā)送到客戶端,客戶端在讀取這些數(shù)據(jù),然后再創(chuàng)建一個臨時窗體來顯示這些數(shù)據(jù),臨時窗體如圖 21。圖 21 錯誤日志查看界面save 按鈕回調(diào)函數(shù)作用:先向服務(wù)程序發(fā)送“Apachecon”和“saveconfig”字符串,然后再把從文本框中讀取的數(shù)據(jù)組合后發(fā)送到服務(wù)程序。restart 按鈕回調(diào)函數(shù)作用:先向服務(wù)程序發(fā)送“Apachecon”和“restart”字符串,然后等待服務(wù)程序把 Apache 服務(wù)重啟后,返回操作結(jié)果,把操作結(jié)果顯示給用戶。stop 按鈕回調(diào)函數(shù)作用:先向服務(wù)程序發(fā)送“Apachecon”和“stop”字符串,然后等待服務(wù)程序把 Apache 服務(wù)重啟后,返回操作結(jié)果,把操作結(jié)果顯示給用戶。start 按鈕回調(diào)函數(shù)作用:先向服務(wù)程序發(fā)送“Apachecon”和“start”字符串,然后等待服務(wù)程序把 Apache 服務(wù)重啟后,返回操作結(jié)果,把操作結(jié)果顯示給用戶。(6) FTP 服務(wù)管理操作FTP 界面建立的同時要從臨時文
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1