TCPで受信したデータのファイル名を得るには?

解決


いきいき  2003-01-10 22:18:12  No: 105844

VB初心者で、まだまだ勉強をはじめたばかりです。
よろしくお願いします。

※WindowsNt4.0でVB6(sp5)を使用。

WinsockコントロールでTCPプロトコルを使用しファイルの受信をしようと考えています。
こちらの掲示板を参考にして受信側のテストのため送信側を作成し、
Private Sub Command2_Click()
    Dim myFileByte() As Byte
    Dim FileNumber As Integer
    Dim FileName As String

    'send data of specified at Text2
    FileNumber = FreeFile()
    FileName = Text2.Text  '送信するファイル名と保存先
    
    Open FileName For Binary As FileNumber
    ReDim myFileByte(0 To LOF(FileNumber) - 1)
    Get FileNumber, , myFileByte()
    Close FileNumber
    
    DoEvents
    Winsock1.SendData myFileByte()
End Sub

受信側は、
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
    Dim strRecievedData As String
    Dim intFeeNum as Integer    
    'データの受信
    Winsock1(Index).GetData strRecievedData, vbString, bytesTotal
    Label2(Index).Caption = strRecievedData  '受信データをラベルに表示
    '受信データの保存
    intFreeNum = FreeFile()
    Open Text2(Index).Text & "\test.ini" For Output As intFreeNum
        Print #intFreeNum, strRecievedData
    Close intFreeNum
    DoEvents
End Sub
としました。

受信したデータのファイル名は送信したファイルと同じものにしたく
色々と試しているのですが単純な方法が見つからないでいます。

送信時に何か引数や規定の関数を渡したりすると受信側でファイル名を受け取れる、というようなものはなさそうなのですが.....

何か良い方法があれば教えてください。
よろしくお願いします。


いきいき  2003-01-14 18:53:42  No: 105845

あれからも自分で色々調べてみましたが、結局単純にファイル名を得ることはできないんだろうな、という結論に至りました。
送信側のプログラムもこちらで作成するなら手段はあったのですが、
「送信側はもう稼動しているから、受信できるものだけ作ってくれ」とされたので
少なくとも私の知る範囲では実現不可能みたいです。

何もコメントいただけませんでしたが、読んでくださった方、調べてくださった方、ありがとうございました。


ムナ  2003-01-14 23:52:46  No: 105846

普通に考えれば
ファイルの中身送る前に ファイル名を送らないと
ファイル名わかるわけないじゃん
っということですね
  
送信プログラム改良できないとは ご愁傷さまです


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加