看了以前的帖子,有人信誓旦旦的说是4k
如果你反对,可以测试一下,一次发送一个几百k的文件,实时监视已经传输的字节数,你会发现,sock自动分多次发送,但是每次最多8192字节就是8k,最大绝对不会超过这个数值。
网络情况差时,就会少于这个数字,随机的。

解决方案 »

  1.   

    所以你要传输文件就最好每次按照8k分割发送
    但是一旦网络环境差,你就应该减少这个包的大小,这就需要一个握手来动态修改传递包的大小,也可以事先写一段测速代码,
    使用一问多大机制或者tcp/ip协议的窗口技术也可以提高发送速度
    以上是我的经验,初来乍到请多加分
      

  2.   

    我记得上次测过UDP传输的报长度,好像是最大是64K的?不知道楼主指的是不是不包括UDP传输?
      

  3.   

    顶,收获不少!我也想学习Winsock以后请大家多帮忙了!!
      

  4.   

    呵呵,楼主只知其一也。(申明:我可能就是楼主说的那位“信誓旦旦”4k者)4k---Unicode编码
    8K---Ansi编码当然:4k的Unicode编码数据=8K的Ansi编码数据所以大家都没有错,只是没有说明
      

  5.   

    当传进 UNICODE 字符串并在网络上发送出去之前,将转化成 ANSI 字符串
      

  6.   

    在局或网内没有经过路由器最多可到8K,在广或网最多只能在1500以下,关键是看网络的MTU值到多少。
      

  7.   

    UP.建议大家都去看一看关于TCP/IP的知识,而不是只在这里讨论VB。
      

  8.   

    什么UNICOD和ANSI,难道大家都以STRING传输?晕自己转成BYTE数组.
    受TCP/IP协议原理影响,TCP缓冲池最大为8K.WINSOCK控件可以自动把超过8K的东西截成8K发送但使用SOCKT API就不这么方便了.