各位大家好!我自己写了个简单的发送文字信息的程序,采用的是TCP协议。现在我实现了从客户端向服务器发送信息,或者从服务器向客户端发送信息。现在我想实现把信息发送给特定的其它客户端,而不止是发给服务器。比如,有个客户端A连接上了服务器,这个时候客户端A能向服务器发送信息,服务器也能向客户端A发送信息。同样的,这个时候有个客户端B也连接上了服务器。这时,客户端B能向服务器发送信息,服务器也能向客户端B发送信息。那么,现在我如何实现把客户端A发送的信息发送给客户端B呢?又如何实现把客户端A的信息发送给其它所有已经连接上服务器的客户端呢?
我采用了多线程来实现这个通信,每当有新的连接,服务器就会启动一个新线程和客户端去交互,这么做是为了提高程序的效率。部分代码如下:
void NetChatServer::incomingConnection(int handle)
{
qDebug("NetChatServer::incomingConnection...");
qDebug() << "客户端:" << handle;
thread = new ClientSocketThread(handle);
thread->start();
}
void ClientSocketThread::run()
{
cs = new ClientSocket;
cs->setSocketDescriptor(socketDescriptor);
connect(cs, SIGNAL(readyRead()), cs, SLOT(recvMessageFromClient()));
connect(cs, SIGNAL(disconnected()), cs, SLOT(deleteLater()));
exec();
}
各位高手,请帮忙解决下这个问题吧。谢谢了!
------解决方案--------------------
一般每个客户端登录后,就有一个登录名,或ID之类的。
在服务器上有纪录,那么你就可以让服务器给你中转了。
------解决方案--------------------
通过服务器中转
------解决方案--------------------
我也知道是让服务器去中转,但是在Qt里怎么实现呢?代码怎么写?我没找到相应的接口来实现这个,能否给出具体的代码。感激不尽啦!
------解决方案--------------------
有种协议叫jabber 也称为xmpp
可以参考下 专门做即时通讯的
------解决方案--------------------
能否给出具体的代码或者给个例子程序也行,这样只说说理论,我还是不知道我的这个功能该如何实现。
------解决方案--------------------
工程量有点大。。。
------解决方案--------------------
那就用代码描述下大致的流程吧。非常感谢!
------解决方案--------------------
有哪位大侠能帮帮我啊。不胜感激啦!
------解决方案--------------------
居然没人回答!这个问题真那么难吗?