資源簡介
本資源展示了LINUX下SOCKET編程的基本知識,并使用GTK+做圖形界面

代碼片段和文件信息
/*********************************
?*?Client.c??????????????????????*
?*?Function:?????????????????????*
?*????create?the?chat?window?????*
?*********************************/
#include?“client.h“
#include?
int?issucceed=-1;
GtkTextBuffer?*show_buffer*input_buffer;
void?get_ip(GtkWidget?*gpointer);
void?quit_win(GtkWidget?*gpointer);
int
main(int?argcchar?**argv)
{
GtkWidget?*window;
GtkWidget?*show_text*input_text*ip_text;
GtkWidget?*ip_label*space_label;
GtkWidget?*link_button*send_button*quit_button;
GtkWidget?*hbox*vbox;
GtkWidget?*scrolled1*scrolled2;
gtk_init(&argc&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window)“Free?Chat??-Client“);
gtk_window_set_position(GTK_WINDOW(window)GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window)430320);
/*?“quit“?button?*/
g_signal_connect(GTK_object(window)“destroy“GTK_SIGNAL_FUNC(quit_win)NULL);
ip_label=gtk_label_new(“IP:“);
space_label=gtk_label_new(“??????????????????????????“);
/*?set?button?*/
link_button=gtk_button_new_with_label(“連接“);
send_button=gtk_button_new_with_label(“發送“);
quit_button=gtk_button_new_with_label(“關閉“);
/*?set?textbox?*/
ip_text=gtk_entry_new();
show_text=gtk_text_view_new();
input_text=gtk_text_view_new();
/*?set?length?of?IP?box?*/
gtk_entry_set_max_length(GTK_ENTRY(ip_text)15);
/*?get?the?buffer?of?textbox?*/
show_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(show_text));
input_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(input_text));
/*?set?textbox?to?diseditable?*/
gtk_text_view_set_editable(GTK_TEXT_VIEW(show_text)FALSE);
/*?scroll?window?*/
scrolled1=gtk_scrolled_window_new(NULLNULL);
scrolled2=gtk_scrolled_window_new(NULLNULL);
/*?create?a?textbox?*/
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled1)show_text);
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled2)input_text);
/*?setting?of?window?*/
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled1)GTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled2)GTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATIC);
hbox=gtk_hbox_new(FALSE2);
vbox=gtk_vbox_new(FALSE2);
/*?click?quit?to?call?quit_win*/
g_signal_connect(GTK_object(quit_button)“clicked“GTK_SIGNAL_FUNC(quit_win)NULL);
/*?click?“connect“?to?call?get_ip?*/
g_signal_connect(GTK_object(link_button)“clicked“GTK_SIGNAL_FUNC(get_ip)ip_text);
/*?create?window?*/
gtk_box_pack_start(GTK_BOX(hbox)ip_labelFALSEFALSE2);
gtk_box_pack_start(GTK_BOX(hbox)ip_textFALSEFALSE2);
gtk_box_pack_start(GTK_BOX(hbox)link_buttonFALSEFALSE2);
gtk_box_pack_start(GTK_BOX(hbox)space_labelTRUETRUE2);
gtk_box_pack_start(GTK_BOX(hbox)send_buttonFALSEFALSE2);
gtk_box_pack_start(GTK_BOX(hbox)quit_buttonFALSEFALSE2);
gtk_box_pack_start(GTK_BOX(vbox)scrolled1TRUETRUE2);
gtk_box_pack_start(GTK_BOX(vbox)scrolled2FALSEFAL
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?-rwx------??????6189??2008-10-13?21:23??client.c
?-rwx------???????608??2008-10-13?21:25??client.h
?-rw-r--r--??????2081??2008-10-13?21:10??cl_sock.c
?-rwx------???????326??2008-10-13?21:27??makefile
?-rwx------??????2613??2008-10-13?21:26??server.c
-----------?---------??----------?-----??----
????????????????11817????????????????????5
評論
共有 條評論