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
としました。
受信したデータのファイル名は送信したファイルと同じものにしたく
色々と試しているのですが単純な方法が見つからないでいます。
送信時に何か引数や規定の関数を渡したりすると受信側でファイル名を受け取れる、というようなものはなさそうなのですが.....
何か良い方法があれば教えてください。
よろしくお願いします。
あれからも自分で色々調べてみましたが、結局単純にファイル名を得ることはできないんだろうな、という結論に至りました。
送信側のプログラムもこちらで作成するなら手段はあったのですが、
「送信側はもう稼動しているから、受信できるものだけ作ってくれ」とされたので
少なくとも私の知る範囲では実現不可能みたいです。
何もコメントいただけませんでしたが、読んでくださった方、調べてくださった方、ありがとうございました。
普通に考えれば
ファイルの中身送る前に ファイル名を送らないと
ファイル名わかるわけないじゃん
っということですね
送信プログラム改良できないとは ご愁傷さまです
ツイート | ![]() |