完成端口有什么用? ( 积分: 50 )

  • 主题发起人 主题发起人 fffddd
  • 开始时间 开始时间
F

fffddd

Unregistered / Unconfirmed
GUEST, unregistred user!
我的理解完成端口也是使用TCP协议,只是多开了几个监听线程,在客户端和服务器连接上保持连接。

UDP是无连接的,为什么大家不用呢?

在同一台服务器上,使用TCP协议连接的并发数多呢?还是UDP方式的。我觉得UDP方式的连接要多,因为认证完毕之后就与服务器断开了连接。而TCP一直连接,不断开给其它人连,占用服务器资源应该比UDP多吧!有人说用完成端口模式一台最多2000并发。哪用UDP不止这个数吧!

请大家谈谈自己的看法。
 
我的理解完成端口也是使用TCP协议,只是多开了几个监听线程,在客户端和服务器连接上保持连接。

UDP是无连接的,为什么大家不用呢?

在同一台服务器上,使用TCP协议连接的并发数多呢?还是UDP方式的。我觉得UDP方式的连接要多,因为认证完毕之后就与服务器断开了连接。而TCP一直连接,不断开给其它人连,占用服务器资源应该比UDP多吧!有人说用完成端口模式一台最多2000并发。哪用UDP不止这个数吧!

请大家谈谈自己的看法。
 
UDP本来就比TCP少耗资源,不过可靠性没TCP好,各有千秋,完成端口是socket编程的一种模型,对大规模,高负载的服务程序有优势
 
udp还不是一样能做到高负载,因为连接完毕马上就断开了,把资源给其它连接用了。
 
UDP是可以高负载,QQ用的就是,不过要看什么应用,如果可靠性要求很高的东西,用UDP丢上几个包就废了,总体是各有千秋,否则也不会同时存在TCP UDP
 
udp可以高性能?UDP可是一种不可靠传输协议,也就是说发送与接收不保证一定成功,另外接收的顺序也不保证,UDP一般用于网络环境较好、负载较小的情况!至于完成端口为什么在大规模、高负载的应用环境中高效,我们首先要从他的实现说起(最基础的)。
一般的完成端口程序需要具备这样几类型线程。
1、连接监听线程(负责处理客户端的连接请求)。2工作线程(负责对接收的数据进行处理)
工作过程
接受连接-》绑定完成端口、开始数据接收(数据的接收是由操作系统的内核完成的)-》获取完成通知处理数据。
完成端口的高效主要体现在(假如是10000并发的系统)
1、接受连接:接受连接后不需要等待数据接收或处理,这样就不需要为这个连接维护线程。(试想如果有10000个连接,那线程的切换也是十分耗费时间的)。
2、数据的收发:收发数据由系统内核完成,减少了系统层面间、程序线程间的切换。
3、数据处理:所有的数据处理可以集中在几个工作线程中完成。大大减少了同步资源、内存、内核对象等的占用,同时由于工作线程的数量只有CPU个数*2(不考虑线程死锁等情况),使线程的切换大大降低。

我的一些简单认识:)
 
完成端口可以在大量的并发连接下流畅运行 TCP下就可以又有安全可靠性 又能承受较多的并发连接 而UDP就没有了安全可靠性........
 
UDP发出的数据 太不把握了
在网络状态不好的情况下要丢包的
所以用TCP
 
这么说来说去,完成端口,是有点像 FTP 协议的里面的传输端口。 这说法,差很远么?
 
后退
顶部