资源简介
本资源展示了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
相关资源
- uboot到linux logo显示不间断 补丁
- UNIX/LINUX编程实践教程的源码
- Linux任务管理器
- linux应用层的华容道游戏源代码
- 通信软件的具体实例──基于Socket的
- 用Socket编程实现FTP
- websocket实现一对一聊天
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- linux下用多进程同步方法解决生产者
- SOCKET 网络编程 计算机网络 作业 客户
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- 用Socket写的简易FTP服务器和客户端
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- linux 0.12内核源代码
- linux简易shell C实现
- linux实验报告及心得体会
- 基于GTK的Linux环境下的简易任务管理器
- socket小工具(可方便建立TCP UDP的soc
评论
共有 条评论