導航:首頁 > 編程大全 > 基於qt的網路聊天室

基於qt的網路聊天室

發布時間:2023-09-16 12:03:42

① 如何用C語言編寫一個簡單的聊天室程序

聊天室的話涉及網路通信。流程大概是:

  1. 客戶端連接伺服器(登陸,上傳相應的數據(起碼回有聊天室編號)答)

  2. 客戶端發生消息給伺服器(消息+聊天室編號)

  3. 伺服器根據客戶端上傳的聊天室編號廣播消息

  4. 客戶端接受伺服器傳來的消息


用到的技術就是socket編程(應該有其他的現成的框架,不過我用得比較多的是java,不清楚c的),如果還想做個界面的話,可以用qt做,或者MFC,應該還有其他可選方式,不過我不知道~~~。

上面只是簡單的,你要做完備的還有很多問題需要考慮,比如說加密數據,優化使其能容納較多的用戶,伺服器崩潰時的處理方案等等。

② 如何用C語言編寫一個簡單的聊天室程序

這樣:

#include <stdlib.h>

#include <stdio.h>

#include <errno.h>

#include <string.h>

#include <unistd.h>

#include <netdb.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <sys/types.h>

#include <arpa/inet.h>

#include <pthread.h>

#define MAXLINE 100;

void *threadsend(void *vargp);

void *threadrecv(void *vargp);

int main()

{

int *clientfdp;

clientfdp = (int *)malloc(sizeof(int));

*clientfdp = socket(AF_INET,SOCK_STREAM,0);

struct sockaddr_in serveraddr;

struct hostent *hp;

bzero((char *)&serveraddr,sizeof(serveraddr));

serveraddr.sin_family = AF_INET;

serveraddr.sin_port = htons(15636);

serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1");

if(connect(*clientfdp,(struct sockaddr *)&serveraddr,sizeof(serveraddr)) < 0){

printf("connect error ");

exit(1);

}

pthread_t tid1,tid2;

printf("connected ");

while(1){

pthread_create(&tid1,NULL,threadsend,clientfdp);

pthread_create(&tid2,NULL,threadrecv,clientfdp);

}

return EXIT_SUCCESS;

}

void *threadsend(void * vargp)

{

//pthread_t tid2;

int connfd = *((int *)vargp);

int idata;

char temp[100];

while(1){

//printf("me: ");

fgets(temp,100,stdin);

send(connfd,temp,100,0);

printf(" client send OK ");

}

printf("client send ");

return NULL;

}

void *threadrecv(void *vargp)

{

char temp[100];

int connfd = *((int *)vargp);

while(1){

int idata = 0;

idata = recv(connfd,temp,100,0);

if(idata > 0){

printf("server : %s ",temp);

}

}

return NULL;

}

(2)基於qt的網路聊天室擴展閱讀:

注意事項

linux下編譯多線程代碼時,shell提示找不到 pthread_create函數,原因是 pthread.h不是linux系統默認載入的庫文件,應該使用類似如下gcc命令進行編譯:

gcc echoserver.c -lpthread -o echoserver

只要注意 -lpthread參數就可以了。

閱讀全文

與基於qt的網路聊天室相關的資料

熱點內容
sel文件如何轉成excel 瀏覽:942
汽車微信廣告語 瀏覽:931
單精度浮點數據怎麼算 瀏覽:609
網路營銷論文怎麼寫 瀏覽:326
在編程語言中函數是什麼 瀏覽:516
開票軟體金稅盤裡面怎麼數據遷移 瀏覽:591
電腦存放圖片有什麼文件夾 瀏覽:260
appleid不對怎麼激活 瀏覽:574
省份表單代碼 瀏覽:194
js原型繼承運行機制 瀏覽:440
jstl判斷的參數 瀏覽:86
java一個線程如何訪問其他方法 瀏覽:64
數字按鍵手機密碼忘記了怎麼刷機 瀏覽:823
小米怎樣設置指紋解鎖密碼是多少 瀏覽:841
caxa圖形轉為pdf文件 瀏覽:718
文件放在哪裡才能用r打開 瀏覽:130
沒有數據集如何重現別人的實驗 瀏覽:10
編程培訓機構待遇如何 瀏覽:822
機械版2018cad內文件夾 瀏覽:688
編程貓導師訓練在哪裡找 瀏覽:88

友情鏈接