linpop聊天软件代码

时间:2025-04-05

linpop聊天软件代码,有注释

一 client.c ......................................................................................................................................................................................... 2

二 server.c ........................................................................................................................................................................................ 5

三 cl_sock.c ...................................................................................................................................................................................... 7

linpop聊天软件代码,有注释

一 client.c

*********************************

* Client.c *

* Function: *

* create the chat window *

*功能: *

*创建聊天窗口 *

*********************************/

#include "client.h"

#include <gtk/gtk.h>/*头文件*/

int issucceed=-1;

GtkTextBuffer *show_buffer,*input_buffer;/*定义全局变量*/

void get_ip(GtkWidget *,gpointer);

void quit_win(GtkWidget *,gpointer);/*声明函数*/

int main(int argc,char **argv)

{/*用GTK创建窗体控件变量*/

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);/*呼叫函数启动GTK*/

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),430,320);/*设置窗体位置*/

g_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(quit_win),NULL);/*按destroy“退出”按钮*/ ip_label=gtk_label_new("IP:");/*设置IP标签为IP:*/

space_label=gtk_label_new(" ");/*设置标签*/

link_button=gtk_button_new_with_label("连接");/*设置按钮*/

send_button=gtk_button_new_with_label("发送");/*设置按钮*/

quit_button=gtk_button_new_with_label("关闭");/*设置按钮*/

ip_text=gtk_entry_new();/* 设置文本框 */

show_text=gtk_text_view_new();/* 设置文本框 */

input_text=gtk_text_view_new(); /* 设置文本框 */

gtk_entry_set_max_length(GTK_ENTRY(ip_text),15);/*设置IP输入框最大长度*/

show_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(show_text));/*获取显示文本框的缓冲区*/

input_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(input_text)); /*获取输入文本框的缓冲区*/

gtk_text_view_set_editable(GTK_TEXT_VIEW(show_text),FALSE);/*设置显示文本框不可编辑*/

scrolled1=gtk_scrolled_window_new(NULL,NULL);/*创建滚动窗口*/

scrolled2=gtk_scrolled_window_new(NULL,NULL); /*创建滚动窗口*/

gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled1),show_text);/*把文本框添加到滚动窗口*/ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled2),input_text);/*把文本框添加到滚动窗口*/ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled1),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);/*滚动条1显示方式,需要时显示*/

linpop聊天软件代码,有注释

gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled2),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); /*滚动条2显示方式,需要时显示*/

hbox=gtk_hbox_new(FALSE,2);/*创建窗口*/

vbox=gtk_vbox_new(FALSE,2); /*创建窗口*/

g_signal_connect(GTK_OBJECT(quit_button),"clicked",GTK_SIGNAL_FUNC(quit_win),NULL);/*关闭按钮调用退出函数*/ g_signal_connect(GTK_OBJECT(link_button),"clicked",GTK_SIGNAL_FUNC(get_ip),ip_text);/*点击“连接”,调用get_ip*/ gtk_box_pack_start(GTK_BOX(hbox),ip_label,FALSE,FALSE,2);/*在hbox窗口上添加IP标签*/

gtk_box_pack_start(GTK_BOX(hbox),ip_text,FALSE,FALSE,2); /*在hbox窗口上添加IP文本框*/

gtk_box_pack_start(GTK_BOX(hbox),link_button,FALSE,FALSE,2); /*在hbox窗口上添加链接按钮*/

gtk_box_pack_start(GTK_BOX(hbox),space_label,TRUE,TRUE,2); /*在hbox窗口上添加space标签*/

gtk_box_pack_start(GTK_BOX(hbox),send_button,FALSE,FALSE,2); /*在hbox窗口上添加发送按钮*/

gtk_box_pack_start(GTK_BOX(hbox),quit_button,FALSE,FALSE,2); /*在hbox窗口上添加退出按钮*/

gtk_box_pack_start(GTK_BOX(vbox),scrolled1,TRUE,TRUE,2);/*在vbox窗口上添加滚动窗口1*/

gtk_box_pack_start(GTK_BOX(vbox),scrolled2,FALSE,FALSE,2); /*在vbox窗口上添加滚动窗口2*/

gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,2); /*在vbox窗口上添加窗口vbox*/

gtk_container_add(GTK_CONTAINER(window),vbox); /*在窗体上添加vbox窗口*/

gtk_signal_connect(GTK_OBJECT(send_button),"clicked",GTK_SIGNAL_FUNC(send_text),NULL);

/*点击发送按钮,然后调用send_text*/

gtk_widget_show_all(window);/*显示窗体*/

gtk_main();

return 0;

}

void show_local_text(const gchar* text)/* 显示输入文本*/

{

GtkTextIter start,end;/*定义缓冲区开始和结束位置变量*/

gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(show_buffer),&start,&end);/*获得缓冲区开始和结束位置的Iter*/ gtk_text_buffer_insert(GTK_TEXT_BUF …… 此处隐藏:7721字,全部文档内容请下载后查看。喜欢就下载吧 ……

linpop聊天软件代码.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219