局域网中,Windows的拷贝竟然是速度之王? 局域网中比如A机器共享一个文件夹,B机器读写,Windows ctrl_c ctrl_v,千兆网络带宽能吃到95%稳稳的,但是自己写的程序怎么也做不到,往往在70%左右波动,第三方程序也没发现哪个可以。编程中改了各种buffer模式,读写块大小,都不行!不知道有没有人搞得定这个问题? 哪怕是给出正确的原理解释也给分。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Windows 里面的编程接口中, 底层有一个文件流直接发送接口, 系统内核直接映射待传输的文件, 然后由内核丢给协议栈最后由网卡发送出去。 自己编程的话, 可以按照这个逻辑调用这个接口。 函数具体的名字忘了, 但隐约记得和 SOCKET 还是 mapfile 方面有关系。 应该是协议的问题,你用socket的? TransmitFile 是一个扩展的 API,它允许在套接字连接上发送一个打开的文件。这使得应用程序可以避免亲自打开文件,重复地在文件执行读入操作,再将读入的那块数据写入套接字。相反,已打开的文件的句柄是各套接字连接一起给出的,在套接字上,文件数据的读入和发送都在核心模式下进行。这就避免了亲自执行文件读入时必须的多重内核变换。 我没有直接使用socket,而是调用windows读写文件的api,背后的协议应该是socket 可以多线程同时操作。比如你的cpu是FX8350(8核心),你可以同时开8个线程来拷贝文件。将文件从开始处分割成八块,然后同时传输。接收端再接收到以后再整合。哦,本地拷贝可以,网络传输好像不行,因为你的socket只能点对点,除非你多开socket,连接同一个server。 超级顽固的 explorer.exe 路径锁定 需要大仙级的高手 软件卸载语言问题 excel如何把自动换行 弱弱的问一下 ping 同一个网站,ping出不同的IP是怎么回事? 不重启电脑的情况下修复dll文件 Visual C++ 2005 Redistributable Package无法修复 实现远程批处理服务器上的服务 数据组合找符合要求的排列 access出库合计空值,导致库存空值,求道友们帮忙,拜谢 重装系统 VS2013添加引用问题 关于系统下载问题
我没有直接使用socket,而是调用windows读写文件的api,背后的协议应该是socket
哦,本地拷贝可以,网络传输好像不行,因为你的socket只能点对点,除非你多开socket,连接同一个server。