12918.html

来自「VB技巧问答10000例 VB技巧问答10000例」· HTML 代码 · 共 23 行

HTML
23
字号
<html>
  <head>
    <title>Re: how to use winsock send file</title>
  </head>
  <body bgcolor="#FFFFFF" vlink="#808080">
    <center>
      <h1>Re: how to use winsock send file</h1>
    </center>
<hr size=7 width=75%>

<hr size=7 width=75%><p>
Posted by yeong huann on May 14, 1999 at 02:25:37:<p>
In Reply to: <a href="12907.html">Re: how to use winsock send file</a> posted by guo on May 13, 1999 at 18:00:41:<p>
其实也不困难<br>相信你已经看过我之前提出的问题,里面我有提到如何编码,解码.(如果没看过,那回头找找吧)<br>接下来我再说明如何传送档案<br>首先我们设定每个封包为516byte<br>第一步我们先传送档案名给接收端,(由于档案名称长度<br>不一,故利用我所说的方法编解码方法传送,当对方收到档<br>名时即开档,并随即传送一个要求对方续传封包的命令<br>EX:SC@@<br>当对方接到SC@@时会解读其命令,并随即传送封包<br>至于为什要传@字元,你可要回头查查之前的讨论<br>这时有一个重点要注意,那就是档案的切割<br>当我们开启档案时是不是可以知到档案的大小,这时我们<br>要作档案的切割,但怎样切呢?<br>我之前为什要将封包设为516BYTE?其实我是为了编码的考<br>量.<br>如果你看过我之前提出的方法,一定为认为这种方法会将<br>资料量扩大为两倍,而不想使用,但我真有这么呆吗?<br>其实我的做法是,先判读档案是否<=256BYTE,倘若是<br>则利用我设计的编解码方式传送,试想(256*2)+2个控制码<br>+2个@不就刚好等于516,但如果档案大小在>256<=512那就<br>分成两个封包拆解码传送<br>但如果档案大于512BYTE,怎么办?其实那就更容易<br>我们可将控制码设为4BYTE EX:ABCD,当对方收到ABCD.....,判读出第三个字元非@时,即可得知整个封包都<br>是资料,所以就从第5个字元开使读取资料,而不需得知结<br>束字元,因为结束字元就是封包的结尾(也不需要编解码)<br>就这样当对方收到一个封包就解读其控制码,并传送要求续传封包的命令,一直处理到最后一个封包再对它作拆解<br>码的动作(因为最后一个封包是不一定大小),然后就关档了<br>总而言之:你只要了解我所谓的控制码的意思,你就能做无<br>穷的变化<br>PS1:封包大小可你可随意设定<br>PS2:上述的方法也许非正统,但可运用在所有传输工具,如<br>有不合理之处请给予指导(但有些部份是为了使所有传输<br>工具都能使用而采用不得已的做法)<br> <p>
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 12918-->
</ul><!--end: 12918-->
<br><hr size=7 width=75%><p>

</body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?