zrr1352 发表于 2015-12-15 14:12:58

求:一个IP怎么同时和多个IP进行TCP/IP通讯

不知道有没有懂TCP/IP的高手,最近在做MFC的一个项目。这个软件需要管控100台左右的设备,所有设备都是通过以太网与电脑相连接。因为刚接触上位机编程,对TCP/IP不是很了解。一个PC同时最多和多少IP进行通讯呢,也就是同时和多少个IP保持连接?如果数量有限,有没有大神有好一点的实现方案?谢谢!

innovision 发表于 2015-12-15 14:17:36

TCP的连接数,应该只取决于PC端的内存空间

netawater 发表于 2015-12-15 14:22:03

可以采取令牌网络,消息在所有设备中依次传递

zrr1352 发表于 2015-12-15 14:25:11

innovision 发表于 2015-12-15 14:17
TCP的连接数,应该只取决于PC端的内存空间

能否描述的详细一些,因为我是新手,刚接触上位机编程。现在通过套接字实现一对一的通讯我没问题,但是比方说,我现在想PC,同时连接我的两个设备,请问如何实现?谢谢!

sblpp 发表于 2015-12-15 14:43:42

PC做server端,等待连接,哪个连了,就和哪个通信,时间超时了,就关闭这个链接。

mndsoft2012 发表于 2015-12-15 15:04:33

5楼说的对,PC端作为主机,即TCP SERVER,,开启一个端口侦听,其他的设备作为从机,即TCP CLIENT,主动向PC SERVER发起连接。这样PC端软件进行分别处理或队列处理。具体可以下载个 TCP UDP调试工具进行测试即可。

myin4 发表于 2015-12-15 15:30:09

连接都是socket,跟IP的数量没有关系

computerxx 发表于 2015-12-15 18:16:44

通过端口 PORT来区分

wzd5230 发表于 2015-12-15 18:22:32

你的电脑创建TCP服务器,设备创建TCP客户端,可以连接很多个,取决于你的pc内存。实在不行如果通信不是很平凡的话,可以创建短连接。

Juggernaut 发表于 2015-12-15 18:24:49

broadcast multi-cast

gzhuli 发表于 2015-12-15 19:34:37

不同的客户端和服务器建立连接,服务器会以<客户端IP:端口>为标识来区分不同连接,所以即使服务器以同一个port监听,客户端并发连接数基本上也是没上限的(理论上是4G * 64K,也就是整个IPv4所有可能的IP:端口组合),只要内存足够就行。
对于客户端来说又不一样了,如果一个客户端要向同一个服务器端口建立多个并发连接就需要使用不同的端口号,而端口号最大为65535,所以除去一些系统保留端口,一个客户端最多只能向同一个服务器端口建立约6万个并发连接。

xpstudio2011 发表于 2015-12-15 20:42:04

我觉得要看你的数据量来决定用TCP还是UDP吧。

xpstudio2011 发表于 2015-12-15 20:42:40

应该要应该的数据量来决定是用UDP还是TCP

fchen2 发表于 2015-12-15 22:04:17

一个IP同时和多个IP进行TCP/IP通讯不难,是否稳定, 要不要主动关闭离线socket连接, 通讯协议报文处理是难点.

huangqi412 发表于 2015-12-15 22:44:19

多个连接超时的踢出新来的加入

huangqi412 发表于 2015-12-15 22:46:08

大家一窝蜂访问论坛简化的看就是多个客户端访问同一台电脑ip的同一个网络端口

zrr1352 发表于 2015-12-16 09:54:32

huangqi412 发表于 2015-12-15 22:46
大家一窝蜂访问论坛简化的看就是多个客户端访问同一台电脑ip的同一个网络端口 ...

我听别人说,一个服务器同时连接多个客户端比较好处理。反过来一个客户端,同时与多个服务器保持连接是不是不行?

tangmintm8013TM 发表于 2015-12-16 10:46:06

多个socket不就解决了!

huangqi412 发表于 2015-12-16 13:24:16

zrr1352 发表于 2015-12-16 09:54
我听别人说,一个服务器同时连接多个客户端比较好处理。反过来一个客户端,同时与多个服务器保持连接是不 ...

一个客户端多个服务器,就是你打开N个网页,同时访问多个BBS.

ackyee 发表于 2015-12-16 14:15:09

socket socket socket

卢台长 发表于 2015-12-16 15:22:11

socket select() 函数

zrr1352 发表于 2015-12-20 21:46:36

好的,谢谢楼上的建议,我先试试,遇到困难再咨询各位

SCREA 发表于 2016-2-10 07:35:40

sblpp 发表于 2015-12-15 14:43
PC做server端,等待连接,哪个连了,就和哪个通信,时间超时了,就关闭这个链接。 ...

这?若是同一秒内60个客户端链接同一个服务器端口,每个链接交互至少10秒,那么服务器能处理过60个客户端访问吗?

sddp001 发表于 2016-2-10 09:54:17

SCREA 发表于 2016-2-10 07:35
这?若是同一秒内60个客户端链接同一个服务器端口,每个链接交互至少10秒,那么服务器能处理过60个客户端 ...

多线程PC 不是单片机

t3486784401 发表于 2016-2-11 00:48:22

SCREA 发表于 2016-2-10 07:35
这?若是同一秒内60个客户端链接同一个服务器端口,每个链接交互至少10秒,那么服务器能处理过60个客户端 ...

pc一般是多线程的,同时干几件事情的处理没问题。你看迅雷开bt时候多开挂,几十个任务一起来。不过话说回来,服务器确实有点烧处理器和内存,多核的东西不要吝啬啊
页: [1]
查看完整版本: 求:一个IP怎么同时和多个IP进行TCP/IP通讯