TCP/IPでのファイル送受信

解決


固まる  2004-04-06 18:27:23  No: 8234  IP: [192.*.*.*]

TCP/IP手順でファイルの送受信をするプログラムで、
ホスト側は何年も前から動いていて、
クライアントの方を作ることになりました。
使用するのは専用回線で、
ダイヤルアップの機能などもつけないといけないのですが、
Delphi6ENTで、
このようなプログラムを作るときに使用するコンポーネントは、
何を使えばよいでしょうか。

編集    削除
LupinⅢ  URL  2004-04-06 21:32:21  No: 8235  IP: [192.*.*.*]

TTcpClientなどですかね、しかし一概に言えないと思います。
方法はたくさんあるので自分にあった方法を見つけるといいでしょう

編集    削除
固まる  2004-04-06 23:06:46  No: 8236  IP: [192.*.*.*]

すいませんです。実は最近VBから乗り換えたところでして、
TTcpClient は Internet タブにある ClientSocket1 のことでしょうか。
また、ダイヤルアップをしてくれるコンポーネントなんかは
ありますでしょうか。

編集    削除
ふじっこ  2004-04-06 23:55:57  No: 8237  IP: [192.*.*.*]

VBから乗り換えされたということで
ダイヤルアップに関しては
http://www1.harenet.ne.jp/~unaap/
のVisualBasicStationというサイトに
掲載されてます
RAS関係を参照されるとよいでしょう

>TTcpClient は Internet タブにある ClientSocket1 のことでしょうか。
そのとおりです。

編集    削除
固まる  2004-04-08 18:06:27  No: 8238  IP: [192.*.*.*]

回答ありがとうございます。
頂いたリンク先の掲示板はよくみているのですが、
RASの詳細なサンプルがあったとは知りませんでした。
ありがとうございました。

編集    削除
も一つ教えてください.  2004-05-20 19:26:08  No: 8239  IP: [192.*.*.*]

以下のようなVBでのWinsockのコードがあるのですが、
これを、DelphiのTClientSocketで書くと、どうなりますでしょうか。
─────────────────────
Do While Winsock1.BytesReceived < 8
    DoEvents()
Loop

For i = 0 To 7
  Winsock1.GetData RecvDat(i), vbByte, 1
Next
─────────────────────
【BytesReceived プロパティ】
受信したデータ (現在受信バッファ内にあるデータ) のサイズを返します。データを取得するには、GetData メソッドを使用します。
【GetData メソッド】
vbByte  取得するデータの型を指定します。
1  バイト配列または文字列を取得する場合に、必要なデータのサイズを指定します。バイト配列または文字列を取得する場合で、この引数を指定しなかった場合は、取得可能なすべてのデータが取得されます。バイト配列と文字列以外の型のデータを取得する場合は、この引数は指定しても無視されます。

編集    削除
頑固ひとスジふたスジ  2004-05-21 17:53:50  No: 8240  IP: [192.*.*.*]

ひとスジ : 「VBさんぷる見ると、1ばいとずつ送られてくるのかな…」
ふたスジ : 「ClientSocketでそれをよむにはどうするんだ?」
ひとスジ : 「ClientTypeぷろぱてぃがctNonBlockingだったら、OnReadいべんと
でよむんだよ」
ふたスジ : 「だけど1ばいとずつどこによみこむんだ〜?」
ひとスジ : 「8ばいとタマルまで RecvDatの中でよみこむところをずらせばいいだろ?」

var
  RecvDat : array[0..7]of Byte;
  RecvPos : Integer = 0;

procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); 
begin
  Socket.ReceiveBuf(RecvDat[RecvPos], 1);
  inc(RecvPos);
  if RecvPos = 8 then begin
    RecvPos := 0;
    ...... (8バイト読んだあとナニするのかな?) ......
  end;
end;

ふたスジ : 「ふ〜ん、RecvDatがいっぱいになるまでタメテいくのか〜〜」
ひとスジ : 「ン?、ナンでクネクネしてるの?」
ふたスジ : 「オレもいっぱいになるまでタメテいるんだぞ〜」
園長先生 : 「ふたスジくん、オシッコ我慢しちゃダメよ、早くトイレに行ってらっしゃい^^;♪」

編集    削除
固まる  2004-05-21 18:33:26  No: 8241  IP: [192.*.*.*]

ありがとうございました。
オチ付きで教えてもらいました。
あのユニットは別名、倍精度浮動小数点とでもいうのでしょうか。

編集    削除