- 论坛徽章:
- 0
|
谢谢各位的回复.
回复nhw_cs :
服务器每次接收一个从客户端发来的数据包后,会放在一个buffer里,然后有另一个线程从buffer里读出,然后发送出去,如果写入的速度比读出的速度快(也就是客户端发送速度比服务器发送的速度快),buffer到一定的程度会满,这个时候服务器会写不进buffer,会通知客户端再发送一次刚才失败的数据.至于你说从A中接收不到数据包,我想这在TCP协议里有保证,会告诉A发送失败的,需要再次发送的.你说的从A全部接收完了(放在内存中)以后再转发给B和C,这种情况我们也考虑过,假如B或C一直没有接收,只有其中一个人接收的时候,这块内存是不能被释放的,因为这些数据还要传给另一个人.一个文件是可以的,如果同时有十来个文件,大写有一两百M的话,请问这个时候服务器还有多少内存剩下可用呢?
回复kukoo:
我们做测试的文件有大小有小,小的就是几十个字节,大的有一两百兆,你说的没错,操作系统是一般会处理这种情况的,但是频繁的读写服务器也不知道如何处理.现在出现的情况就是这样的.你说的2-8原则能不讲出来与大家分享一下,让大家一起提高一下?
回复bennie :
我们是主要传输多媒体文件的,是流文件. |
|