Winsockでファイル送信できるには?


たまほげら  2002-04-15 03:35:19  No: 75506  IP: [192.*.*.*]

Winsock.ocxを使ってファイル送信ソフトを作りたいのですが、
object.SendData data  というやり方で送信しようとすると、
なぜか、8KBまでしか送れません。

これは、Winsockの仕様なのか、やり方がまずいのか分かりません。
どうか、対処方法を教えてください。

開発環境:Windows98SE  
          VB6SP3  

WinsockはTCP方式です。

編集    削除
Cp.Alpha2  2002-04-15 17:05:01  No: 75507  IP: [192.*.*.*]

バイトまで分解して個別に送るというのはどうでしょうか。

編集    削除
たまほげら  2002-04-17 04:27:08  No: 75508  IP: [192.*.*.*]

Dim GetFileByte() As Byte

Open filename For Binary As #FreeFile()        
    ReDim GetFileByte(FileLen(filename) - 1)
    Get #1, , GetFileByte()
Close

tcpClient.SendData GetFileByte()

僕がやってるのはこんな感じですが無理でした。
多分、どこかが間違ってると思うんですが分かりません。

編集    削除
kenji  2002-04-24 09:03:02  No: 75509  IP: [192.*.*.*]

まず、FreeFileの戻り値は残しておきましょう。
ファイルを開いているのならLOF関数を使ってファイルサイズが
取得できます。

Dim GetFileByte() As Byte
Dim FileNumber As Integer

FileNumber = FreeFile() 
Open filename For Binary As FileNumber 
ReDim GetFileByte(0 to LOF(FileNumber) - 1)
Get FileNumber , , GetFileByte()
Close FileNumber 

tcpClient.SendData GetFileByte()

こんな感じになると思います。

編集    削除