返回信息流有一个问题一直不理解,想请教一下大家。以前做socket通信都是做单对单的 listen connect accept send receive 都没有问题 但是现在想做一个多客户端连接单个服务器的 请问 listen的时候要监听多个端口么?还有就是accept的时候应该怎么弄?牵扯到多线程的东西么?
这是一条镜像帖。来源:北邮人论坛 / cpp / #78571同步于 2014/4/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
socket问题
keith1989
2014/4/20镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
你的需求基本上就是pc调试安卓设备使用的adb所干的事情,当然adb还多了和安卓设备上adbd的通信。不过adb client和adb server之间的通信就是你现在要的。有兴趣的话去下载adb的源代码看看,google质量。
或者,看看poco c++ library,开源的,厘米啊的socket实现很好:
官网:http://pocoproject.org/
socket相关介绍:http://wiki.edg.com/twiki/pub/PublicRepository/SG4Docs2012/POCO.Net.pdf
一个主进程 监听到一个 就开个子进程 关掉监听套接字 实现通信 通信完之后关掉
【 在 keith1989 (keith) 的大作中提到: 】
: 有一个问题一直不理解,想请教一下大家。以前做socket通信都是做单对单的 listen connect accept send receive 都没有问题 但是现在想做一个多客户端连接单个服务器的 请问 listen的时候要监听多个端口么?还有就是accept的时候应该怎么弄?牵扯到多线程的东西么?
accept的时候,是由系统选择一个未使用的端口分配给该客户端,原来绑定的监听端口不会变。你要做的就是给新连接的客户端建立一个新线程。不要关闭监听的套接字,除非你只连接一个客户端。举个例子:
while(ture)
{
clientSocket = serverSocket.accept();
CreateThread(clientSocket);
}