前段時間學習了網路程式設計,雖然沒有完全熟練掌握,自己嘗試做乙個小型的聊天室
**如下
- 客戶端
chatclient.c
#include #include #include #include #include #include #include #include #include int sockfd;
char* ip = "192.168.1.116";
short port = 2000;
typedef struct sockaddr sa;
char name[20];
//啟動客戶端,連線伺服器
void init()
printf("客戶端啟動成功\n");
}//開始通訊
void* recv_thread(void* p)
; if(recv(sockfd,buf,sizeof(buf),0)<=0)
printf("%s\n",buf);
}}void start()
; scanf(" %s",buf);//接受使用者輸入
send(sockfd,buf,strlen(buf),0);//發給伺服器
}}void sig_close()
int main()
#include #include #include #include #include #include #include #include #include //準備工作
int sockfd;//
char* ip = "192.168.1.116";//本機ip,回送位址
short port = 2000;
typedef struct sockaddr sa;//型別轉換
struct client
;struct client c[100] = ;//最多記錄100個鏈結到伺服器的客戶端
int size = 0;//記錄客戶端的個數,陣列的索引
//初始化伺服器的網路,建立socket
void init()
//準備網路通訊位址
struct sockaddr_in addr;
addr.sin_family = af_inet;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ip);
if(bind(sockfd,(sa*)&addr,sizeof(addr))==-1)
printf("成功繫結\n");
//設定監聽
if(listen(sockfd,10)==-1)
printf("設定監聽成功\n");
printf("初始化伺服器成功\n");
//等待客戶端鏈結,放到另乙個函式中
}//執行緒函式,用來接受客戶端的訊息,並把訊息發給所有客戶端
//分發訊息函式
void sendmsgtoall(char* msg)
size++;
char tishi[100] = ;
//**通知訊息
sprintf(tishi,"熱烈歡迎 %s 登入聊天室..",name);
//發給所有人
sendmsgtoall(tishi);
while(1)
;if(recv(fd,buf,sizeof(buf),0)==0)
;for(i=0;ifd=%dquit\n",fd);
char msg[100] = ;
sprintf(msg,"歡送 %s 離開聊天室,再見!",name);
//**退出通知
sendmsgtoall(msg);
close(fd);
return;//客戶端退出了,結束服務執行緒
}sendmsgtoall(buf);//接受成功,廣播聊天資訊
}}//等待客戶端的連線,啟動伺服器的服務
void service()
//如果客戶端成功連線上
printf("fd=%d\n",fd);//測試
//啟動執行緒
//pthread_t pid;
//pthread_create(&pid,0,service_thread,&fd);
}}void sig_close()
int main()
linux網路程式設計 聊天室總結
說在前面 暑假留校的主要任務是學習linux下的c語言程式設計,之前寫了my ls,my shell這兩個可以說是練手的小專案,而最後的專案聊天室也是花了自己快兩周的時間,說實話第一次寫這種 對自己而言 大專案,最深刻的體會就是整體的架構很重要,很重要,很重要 專案概述 linux 環境下的簡易聊天...
網路程式設計 簡易聊天室
問題背景 多數程式猿使用scoket關鍵字有什麼用途。什麼是網路程式設計?通過使用套接字來達到程序間通訊目的的程式設計就是網路程式設計,網路程式設計最主要的工作就是在傳送端把資訊通過規定好的協議進行組裝包,在接收端按照規定好的協議把包進行解析,從而提取出對應的資訊,達到通訊的目的!中間最主要的就是資...
JSP網路聊天室
1.登入頁面 在頁面輸入使用者名稱密碼,提交到登入邏輯頁面 2.登入邏輯頁面 調資料庫判斷使用者名稱密碼的正確性 正確 跳到聊天室介面並且儲存使用者名稱 錯誤 返回登入介面 3 聊天室介面 1.拿到儲存的使用者名稱 2.將傳送的訊息傳到聊天室邏輯頁面 4.聊天室邏輯頁面 2 邏輯思路圖 3 例項 l...