• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: 其他
  • 标签: Linux  socket  

资源简介

本资源展示了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


评论

共有 条评论