一个监听端口够吗?

wzuxian2012 2013-03-28 10:37:38
一个监听端口够吗?

服务器 需要把处理客户端的命令和文件。

所以用2个端口分别来处理。

可是不知道服务器需要几个端口来监听客户端,

一个监听够吗?

...全文
173 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzuxian2012 2013-03-29
  • 打赏
  • 举报
回复
引用 11 楼 kyotrue 的回复:
引用 2 楼 wzuxian2012 的回复:引用 1 楼 kyotrue 的回复: 监听端口是监听端口,连接上了以后,通讯是用另一个随机端口的。 反正从性能上说,监听端口数量不是问题,各大网站不是也只有一个80端口么。。。 不说你的例子 用我的例子来说吧 命令端口8100 文件端口8101 监听端口假设只有一个即:6000 假设只有……
懂了。
菜牛 2013-03-28
  • 打赏
  • 举报
回复
我的意思你的所谓命令端口应该就是监听端口。
菜牛 2013-03-28
  • 打赏
  • 举报
回复
我觉得1楼说得很对,客户端发起连接(Connect)时是需要指定服务器地址和端口的,服务器需要为每个接入(Accept)的客户端维持一个连接,连接建立后就可以通讯(Send/Receive),这是基本的Socket编程模式。对服务器来说,采用异步或者完成端口的模式,不管多少个客户端连接都可以处理,只受服务器资源和带宽限制。反过来,如果服务器有多个端口,客户端怎么去选择?服务器多个端口,互相怎么去协调?服务器开端口多了,反而影响网络效率。 同时,你说的什么命令端口、文件端口,也没啥必要吧,尤其命令,都通过建立的连接去传输就是了,有需要大数据传输开一个文件端口倒也说得过去。 当然,我说的都是普遍的做法,也许你们有特殊需求,那就没办法了。
wzuxian2012 2013-03-28
  • 打赏
  • 举报
回复
wzuxian2012 2013-03-28
  • 打赏
  • 举报
回复
wzuxian2012 2013-03-28
  • 打赏
  • 举报
回复
引用 1 楼 kyotrue 的回复:
监听端口是监听端口,连接上了以后,通讯是用另一个随机端口的。 反正从性能上说,监听端口数量不是问题,各大网站不是也只有一个80端口么。。。
不说你的例子 用我的例子来说吧 命令端口8100 文件端口8101 监听端口假设只有一个即:6000 假设只有一个客户端来连接。 客户端知道6000了,就连接到6000,然后我咋服务端 的客户端列表里创建了一个套机字, 用这个套接字来与 客户端进行通信。 由于客户端的套接字是随机端口, 它链接服务器的时候,用6000, 然后连接上了。 然后怎么使用8100, 8101呢?
kyotrue 2013-03-28
  • 打赏
  • 举报
回复
监听端口是监听端口,连接上了以后,通讯是用另一个随机端口的。 反正从性能上说,监听端口数量不是问题,各大网站不是也只有一个80端口么。。。
wocow3 2013-03-28
  • 打赏
  • 举报
回复
与FTP类似,FTP就是双连接,accept创建的socket传命令,另外还需要一个数据连接 主动模式下,是客户端创建数据连接的监听端口等待服务器来连 被动模式下,是服务器创建数据连接的监听端口等待客户端来连 无论哪种,都是通过初始accept创建的socket作为命令连接传递 对方 已初始化的数据监听端口,因为这个监听端口一般都bing端口0从而使用 临时端口,所以必须显式的告诉对方 回到你的模型再创建一个 bind到0端口的监听就行了,6000端口accept得到的socket作为命令控制连接 另外6000端口accept得到的所有socket其本地bind的端口还是6000,不会占用其他的端口
kyotrue 2013-03-28
  • 打赏
  • 举报
回复
引用 2 楼 wzuxian2012 的回复:
引用 1 楼 kyotrue 的回复: 监听端口是监听端口,连接上了以后,通讯是用另一个随机端口的。 反正从性能上说,监听端口数量不是问题,各大网站不是也只有一个80端口么。。。 不说你的例子 用我的例子来说吧 命令端口8100 文件端口8101 监听端口假设只有一个即:6000 假设只有一个客户端来连接。 客户端知道6000了,就连接到6000,然后我……
TCP的监听端口只是处理连接请求的,你实际建立的命令、文件传输等连接,服务端是用的随机分配的端口。
youngwolf 2013-03-28
  • 打赏
  • 举报
回复
你就一个6000端口,然后两条连接,一条发送命令,一条发送文件,哪一条是命令哪一条是文件,你自己定,端口你就当成透明的吧。 两条连接要区分是命令还是文件,有很简单的办法,不需要用端口来区分,比如先连接的是命令,后连接的是文件。或者连接成功之后,发一点数据,用于区分自己是命令连接还是文件连接。
yaozhiyong110 2013-03-28
  • 打赏
  • 举报
回复
你往110打电话 通了能和120聊起来?
yaozhiyong110 2013-03-28
  • 打赏
  • 举报
回复
你怎么使用6000就怎么使用 8100 8101 你还想客户端connect 6000端口以后 又往8100或者8101发 数据? 基础都没搞懂...
wzuxian2012 2013-03-28
  • 打赏
  • 举报
回复
引用 6 楼 Mackz 的回复:
我的意思你的所谓命令端口应该就是监听端口。
你不要关注细节(为什么要会出现2个端口+1个监听端口) 重点是: 命令端口8100 文件端口8101 服务器的监听端口先假设只有一个即:6000 假设只有一个客户端来连接。 客户端的随机分配一个端口去链接6000后, 服务器分配一个套接字 与客户端的套接字通信, 这2者通信是什么端口?自然是服务端的6000通信。 可是我怎么使用 8100, 8101?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧