TCP/IP手順でファイルの送受信をするプログラムで、
ホスト側は何年も前から動いていて、
クライアントの方を作ることになりました。
使用するのは専用回線で、
ダイヤルアップの機能などもつけないといけないのですが、
Delphi6ENTで、
このようなプログラムを作るときに使用するコンポーネントは、
何を使えばよいでしょうか。
TTcpClientなどですかね、しかし一概に言えないと思います。
方法はたくさんあるので自分にあった方法を見つけるといいでしょう
すいませんです。実は最近VBから乗り換えたところでして、
TTcpClient は Internet タブにある ClientSocket1 のことでしょうか。
また、ダイヤルアップをしてくれるコンポーネントなんかは
ありますでしょうか。
VBから乗り換えされたということで
ダイヤルアップに関しては
http://www1.harenet.ne.jp/~unaap/
のVisualBasicStationというサイトに
掲載されてます
RAS関係を参照されるとよいでしょう
>TTcpClient は Internet タブにある ClientSocket1 のことでしょうか。
そのとおりです。
回答ありがとうございます。
頂いたリンク先の掲示板はよくみているのですが、
RASの詳細なサンプルがあったとは知りませんでした。
ありがとうございました。
以下のような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 バイト配列または文字列を取得する場合に、必要なデータのサイズを指定します。バイト配列または文字列を取得する場合で、この引数を指定しなかった場合は、取得可能なすべてのデータが取得されます。バイト配列と文字列以外の型のデータを取得する場合は、この引数は指定しても無視されます。
ひとスジ : 「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がいっぱいになるまでタメテいくのか〜〜」
ひとスジ : 「ン?、ナンでクネクネしてるの?」
ふたスジ : 「オレもいっぱいになるまでタメテいるんだぞ〜」
園長先生 : 「ふたスジくん、オシッコ我慢しちゃダメよ、早くトイレに行ってらっしゃい^^;♪」
ありがとうございました。
オチ付きで教えてもらいました。
あのユニットは別名、倍精度浮動小数点とでもいうのでしょうか。
ツイート | ![]() |