導航:首頁 > IDC知識 > c聊天伺服器

c聊天伺服器

發布時間:2021-02-14 12:47:56

1、用C++如何寫出像QQ那樣的即時通訊軟體?伺服器用到的是什麼語言?

當然 控制台的話 肯定不易使用

我們原來用C++語言 和MFC 做過一個C/S構架的聊天工具

MFC主要負責版 界面 C++負責功能編寫權

服務端(就是你說的伺服器)和客戶端都是用C++編寫的

不客氣地說 說C++不至此網路編程的 可以退出編程界了 你不適合這行

2、急!!linux下C語言編寫一個聊天伺服器程序

?

3、求一個C#聊天程序,沒有伺服器的那種直接點對點的完整聊天程序。



System.Net;
System.Net.Sockets;

一個寫界抄面用tcplistener類實例襲,另一個用tcpclient實例,基本可以達到要求,聊天程序而已,全傳字元串就行,網上對照實例很多,你可以參考。比如下面是百科找到的代碼有一段提到點對點,你可以參考
http://wenku.baidu.com/view/50e294c389eb172ded63b7c8.html

4、C語言問題:區域網聊天系統中的伺服器怎麼區分不同的客戶端並把數據傳給客戶端?

通常伺服器是這樣的:
struct sockaddr clientAddr;
int ret = accept(s,&clientAddr,sizeof(struct sockaddr));
if(ret > 0)
{
....

}
SOCKET PASCAL accept( SOCKET s, struct sockaddr * addr,int * addrlen);
請看accept原型 第2個參數為指針 。也就是如果accept成功 那麼服回務器端就會得到客答戶端的struct sockaddr結構體數據,裡麵包含了客戶的ip port等。
實際中要區分的話,應該是有類似於自擬協議,比如約定好,客戶端連上伺服器後,主動發送包含身份的信息給伺服器,伺服器識別後,才開始為該客戶服務。

5、用C語言在WIN32下編譯一個簡單的聊天程序,客戶端向伺服器發消息,伺服器接到消息後會返回一個

#include<stdio.h>#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<errno.h>
#include<netinet/in.h>
#include<sys/socket.h>

#define SERVERPORT 5555#define BACKLOG 10
#define MAXLEN 1024

int main(){
int sockfd,client_fd;
int sin_size = 0;
int recvlen = 0;
char recvbuf[MAXLEN]={0};
struct sockaddr_in my_addr;
struct sockaddr_in cli_addr;
int iRet;

/*建立socke通信*/
if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1){
printf("Create socket error\n\n");
exit(1);
}

printf("socket success\n");

my_addr.sin_family=AF_INET; my_addr.sin_port=htons(SERVERPORT);
my_addr.sin_addr.s_addr=INADDR_ANY;
memset(my_addr.sin_zero,0,8);

/*綁定socket埠*/
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr)) == -1){
printf("bind error\n");
close(sockfd);
exit(1);
}

printf("bind success\n");

/*監聽埠*/
if(listen(sockfd,BACKLOG) == -1){
printf("listen error\n!");
close(sockfd);
exit(1);
}

printf("listren success\n");

while(1) {

sin_size = sizeof(struct sockaddr_in);

/*阻塞等待客戶端發送消息*/
if((client_fd=accept(sockfd,(struct sockaddr *)&cli_addr,&sin_size)) == -1)
{
printf("accept error !");
continue;
}
printf("accept success\n");
printf("receive a connection form %s\n",inet_ntoa(cli_addr.sin_addr));

/*fork進程,子進程處理接收的信息*/
iRet=fork();
if(iRet < 0)
{
printf(" fork err, pid=[%d]", getpid());
}

/*fork返回0,為子進程*/
else if(iRet == 0)
{

printf("pid=[%d]", getpid());
printf("子進程\n");

memset(recvbuf,0,sizeof(recvbuf));

/*接收客戶端發送的內容*/
if((recvlen = recv(client_fd,recvbuf,MAXLEN,0)) == -1)
{
printf("recv error\n");
close(client_fd);
exit(1);
}
printf("recvlen[%d]\n",recvlen);
printf("recvmsg:\n%s\n",recvbuf);

/*向客戶端發送內容*/ if(send(client_fd,recvbuf,recvlen,0) == -1)
{
printf("send error\n");
close(client_fd);
exit(1);
}
printf("sendmsg:\n%s\n",recvbuf);

close(client_fd);
exit(0);

}

/*父進程,返回子進程pid*/
else
{
printf("pid=[%d]", getpid());
printf("父進程\n");
continue;
}

}

close(sockfd);
exit(0);
}

6、誰可以給我一個以C語言或者java寫的兩個客戶端之間的聊天,伺服器中轉的聊天程序,急求啊~~~

java的 就是在你創建伺服器socke線程裡面,當創建好了之後將這個socket存到之前定義的全局List中去,當接受到客戶端發過來的消息後迭代之前存socket的List,所有都發送一次,這樣就是想了群聊了!

7、關於在linux下用C語言實現多客戶端和伺服器端聊天的實現!

你的意思是伺服器監聽同一埠,然後根據不同客戶端運行不同的伺服器程序?如果是,自然少不了select或if-elseif-then

8、聊天軟體用伺服器嗎

聊天軟體是算是一個第三方的傳話器功能,有檢測聊天內容的功能,如我們在內qq輸有關金容錢的信息時,會提示你注意信息安全,對方不在線,聊天內容就存在伺服器中,如qq離線狀態時!租伺服器找我,展翼小T!河南網通支持網路電話的伺服器!

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

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

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

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

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

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


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

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

10、c/s聊天編程,要一個伺服器能同時接收多個客戶端的消息,現在只能接收一個客戶端

你應該至少吧伺服器端和客戶端分開做..........

與c聊天伺服器相關的知識