导航:首页 > 编程大全 > 基于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的网络聊天室相关的资料

热点内容
芜湖寒假编程培训是什么 浏览:609
api源码分享网站 浏览:511
小米复制文件找不到 浏览:959
什么是网络层 浏览:73
如何利用编程做多文件数据合并 浏览:666
java如何用tcp发送16进制协议 浏览:975
js获取当天 浏览:637
在什么网站看战狼2 浏览:881
win7桌面工具栏不见了 浏览:346
qq群几个管理员 浏览:598
录光盘怎么找不到文件 浏览:885
flip5怎么连app 浏览:273
五个g的文件怎么传到u盘 浏览:316
如何用编程编译运行出心形图案 浏览:486
linuxcentos64vpn 浏览:328
桔城pdf转换成word转换器 浏览:754
java数组排重 浏览:846
1703版win10 浏览:357
windows文件上传 浏览:111
精通jsp编程技术 浏览:139

友情链接