Chingliu / baserver

Automatically exported from code.google.com/p/baserver
0 stars 0 forks source link

如何使用BAS进行文件传输 #26

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
最近一段时间一直在学习BAS的源码。如何使用BAS进行文件传��
�?作者可否给个示例?
另:父线程、子线程各有什么作用?在代码中没看明白。刚��
�门,水平有限,请给予指点。不过也应该有一定的代表性吧

Original issue reported on code.google.com by snows...@gmail.com on 8 May 2012 at 11:28

GoogleCodeExporter commented 8 years ago
不好意思应该为父连接和子连接。这两个一直没看明白是什��
�意思。

Original comment by snows...@gmail.com on 8 May 2012 at 11:29

GoogleCodeExporter commented 8 years ago
父连接和子连接主要用于需多级访问的服务器,如果服务器��
�要访问另一个服务器,这时候实际上有两重角色,同时为服�
��器端和客户端,父子连接就是用来在这两种连接之间交换数
据的机制。

Original comment by moore...@gmail.com on 8 May 2012 at 4:50

GoogleCodeExporter commented 8 years ago
谢谢。也就是说,如果服务器本身既作为服务器端又作为客��
�端,并且服务器端和客户端之间需要进行数据交换时才需要�
��用,对吗?如果服务器本身既作为服务器端又作为客户端,
但服务器端只负责接收数据,客户端只负责发送数据,二者��
�间没有数据的交换,那么也不需要实现父、子连接,对吗?
另:使用BAS进行文件传输可以吗?尤其当文件比较大时,效��
�会怎样?需不需要使用一些特殊的处理方式?比如,内存映�
��文件?

Original comment by snows...@gmail.com on 9 May 2012 at 6:58

GoogleCodeExporter commented 8 years ago
如果使用使用内存映射文件进行文件传输,那么BAS里提供的IO
_buffer还需要使用吗?
BAS使用半同步/半异步方式,如果采用这种方式进行文件传输�
��在工作层会不会造成线程大量切换?比如,有200个并发传输
,工作层的代码使用同步,但还需要实时显示传输的进度、��
�率等(如QQ传输文件),那么需要有200个线程在负责这一块��
�作,此时会不会造成线程大量切换,耗费系统资源?

Original comment by snows...@gmail.com on 9 May 2012 at 7:10

GoogleCodeExporter commented 8 years ago
父子连接可视需要使用,并不是必须的,可参见echo_server的例
子。
bas主要设计用于处理复杂业务逻辑的应用服务器用途,追求��
�率并不时他的首要目标,而是通过由框架管理所有I/O,突出�
��务逻辑的独立性和完整性,建立稳定的、可扩展、可移植的
构架。
至于将bas用于文件传输及界面处理用途,应该是ok的,但效率
显然比不上专门设计的代码。

Original comment by moore...@gmail.com on 10 May 2012 at 12:30