资源简介
本资源展示了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
相关资源
- 自己写的最方便的tcp客户端dll
- v4l2采集视频并保存和lcd显示
- Linux基于Live555从共享内存 获取rstp实时
- linux下二进制拆弹
- 《Linux环境编程》编程题答案及实验报
- linux平台基于socket图形化网络聊天
- 计算机网络实验基于Socket编程
- 用链表实现的一个电话本小程序
- linux系统iftop命令所有安装包依赖包
- Linux系统操作实习报告
- 基于嵌入式Linux的车载定位系统设计
- 基于嵌入式Linux系统的远程数据采集
- 实验2 Linux内核编译及系统调用添加
- 支持VMWare Esxi6.7虚拟机操作系统,VM
- Linux下Nao环境搭建及其运行调试
- linuxcnc插补算法函数调用关系图
- 百度网盘qimo for kids带中文版qimo 2.0
- 命令执行程序doit请大家不要copy,注意
- 文件查找程序myfind请大家不要copy注意
- FHS说明文档
- linux基线自查.xlsx
- 尚硅谷周阳Linux视频附加韩顺平老师
- Ubuntu升级openssh7.8p1快速命令集
- curl器linux版
- 简易的彩票系统linux c
- bugfree2在Linux下详细安装步骤
- FTP客户端程序
- WebSocket客户端测试工具:v4.20_免费版
- Linux综合实验GTK+单词计算器
- 苏州大学linux自学考试题库
评论
共有 条评论