• 5100阅读
  • 6回复

关于TCP server的一点问题 [复制链接]

上一主题 下一主题
离线zzyongchao
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-14
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
1、TCP server接受client连接后,怎么获得client的IP?            已解决:peerAddress
2、怎么实现多客户端同时在线,同时互补干涉收发数据。是像下面一样保存多个nextPendingConnection的指针就可以了吗?
clientConnection[i++] = server.nextPendingConnection();
3、如果要server同时给多个客户端发送数据,而数据源是一个文件,发送是进度肯定是不一样的,怎么读取文件。
[ 此帖被zzyongchao在2010-04-14 11:09重新编辑 ]
离线zzyongchao

只看该作者 1楼 发表于: 2010-04-14
怎么没人回答问题
离线zzyongchao

只看该作者 2楼 发表于: 2010-04-14
第一个问题我已经解决了 peerAddress()就可以
[ 此帖被zzyongchao在2010-04-14 11:40重新编辑 ]
离线zzyongchao

只看该作者 3楼 发表于: 2010-04-14
要实现多客户端同时在线(长连接),服务端一定要用QThread吗
[ 此帖被zzyongchao在2010-04-14 14:30重新编辑 ]
离线20044454
只看该作者 4楼 发表于: 2010-04-14
用QList<QTcpSocket*> client_list;
client_list.append(你获得的那个socket)  //server.nextPendingConnection();
至于是否用多线程开你的需要,如果一直处理大数据,还是用多线程,如果发送一点东西的话(比如发送一句话),就没必要吧

同时给多个发客户端发送,一读取到一个buffer里面后,给所有客户端都发送以后再读取数据 不就可以了

以上是个人理解,欢迎拍砖
让我做一个Qt的大牛!!!!
离线zzyongchao

只看该作者 5楼 发表于: 2010-04-14
QList就可以吗?             我是服务端和客户端一直收发数据最大包不超过2K
读文件肯定不能这样了,应为可以一个客户端都发送一半了,另一个客户端才连上。
离线cksckb
只看该作者 6楼 发表于: 2010-04-25
請問一下 如果使用這個方法來實現多客戶端的話
QList<QTcpSocket*> client_list;
client_list.append(你获得的那个socket)  //server.nextPendingConnection();
之後如何判定是哪一個client來進來呢
快速回复
限100 字节
 
上一个 下一个