91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

Linux課程設計多線程聊天,有圖形界面,源碼,報告都在里面,經測試正確,可用

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include“message.h“
#include“gettime.h“

sem_t?bin_sem;
int?client_sockfd;
const?gchar?*username;
GtkWidget?*logionWindow;
GtkWidget?*res_text_view;
GtkTextBuffer?*view_buffer;

void?accmsg(int?*fd)????????????????????????????//recive?information?from?server
{
sem_wait(&bin_sem);
char?buf[50];
char?*text; //storage?information
int?clientfd?=?*fdrecvbytes;
GtkTextBuffer?*buffer;
GtkTextIter?startend;
text=(char?*)malloc(50);
while(1)
{
memset(buf‘\0‘sizeof(buf));
memset(text‘\0‘sizeof(text));
if((recvbytes=recv(clientfdbufsizeof(buf)0))<=0)
{
perror(“recv“);
close(clientfd); //close?socked
raise(SIGSTOP);
exit(1);
}?
strcpy(textbuf);
buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(res_text_view));
gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(buffer)&start&end);
gtk_text_buffer_insert(GTK_TEXT_BUFFER(buffer)&starttextstrlen(text));
}
}

void?Clear_Local_message(gpointer?*data)
{
GtkTextIter?startend;
GtkTextBuffer?*send_buffer;
send_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(data));
gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(send_buffer)&start&end);/*獲得緩沖區開始和結束位置的Iter*/
gtk_text_buffer_delete(GTK_TEXT_BUFFER(send_buffer)&start&end);/*插入到緩沖區*/
}

void?Put_Local_message(const?gchar?*text)
{
GtkTextBuffer?*rcv_buffer;
GtkTextIter?startend;
char?*curtime;

curtime?=?(char?*)malloc(TIMELENGTH);???//give?space
rcv_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(res_text_view));
gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(rcv_buffer)&start&end);/*獲得緩沖區開始和結束位置的Iter*/
get_cur_time(curtime);
gtk_text_buffer_insert(GTK_TEXT_BUFFER(rcv_buffer)&endcurtimestrlen(curtime));/*插入文本到緩沖區*/
gtk_text_buffer_insert(GTK_TEXT_BUFFER(rcv_buffer)&end“?“1);/*插入文本到緩沖區*/
gtk_text_buffer_insert(GTK_TEXT_BUFFER(rcv_buffer)&end“我說:\n“8);/*插入文本到緩沖區*/
gtk_text_buffer_insert(GTK_TEXT_BUFFER(rcv_buffer)&endtextstrlen(text));/*插入文本到緩沖區*/
gtk_text_buffer_insert(GTK_TEXT_BUFFER(rcv_buffer)&end“\n“1);/*插入文本到緩沖區*/
}

void?Show_Err(char?*err)
{
GtkTextIter?startend;
GtkTextBuffer?*rcv_buffer;
rcv_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(res_text_view));
gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(rcv_buffer)&start&end);
gtk_text_buffer_insert(GTK_TEXT_BUFFER(rcv_buffer)&enderrstrlen(err));
}

void?sendButton_event(GtkWidget?*widgetgpointer?*data)
{

GtkTextBuffer?*send_buffer;
int?sendbytes;
GtkTextIter?startend;
char?*t;
PMessage?msg;
t=(char?*)malloc(TXTNUM);

msg=(Message?*)malloc(sizeof(Message));
memset(msg‘\0‘sizeof(Message));
memset(t‘\0‘sizeof(t));

send_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(data));
gtk_text_buffer_get_bounds(GTK_TEXT_BUF

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????270848??2013-08-01?11:20??Linux課程設計\Linux課程設計報告.doc

?????文件??????17880??2013-07-05?22:52??Linux課程設計\源代碼\client.c

?????文件???????2388??2013-06-30?11:10??Linux課程設計\源代碼\clientlist.h

?????文件???????2619??2013-07-05?13:55??Linux課程設計\源代碼\database.h

?????文件????????921??2013-06-30?10:32??Linux課程設計\源代碼\gettime.h

?????文件???????2747??2013-07-01?15:39??Linux課程設計\源代碼\message.h

?????文件??????12524??2013-07-05?15:35??Linux課程設計\源代碼\server.c

?????目錄??????????0??2013-07-06?11:00??Linux課程設計\源代碼

?????目錄??????????0??2013-08-01?11:21??Linux課程設計

-----------?---------??----------?-----??----

???????????????309927????????????????????9


評論

共有 條評論