[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 11/23 15:44 / Filesize : 200 KB / Number-of Response : 887
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Delphi】 Indyコンポーネント 【C++Builder】



1 名前:デフォルトの名無しさん mailto:sage [04/08/28 09:50]
The Indy Project
www.indyproject.org/

     ./\        /\
     /:::::::ヽ____/::::::::ヽ、
    / ::. _  .:::::::::::::  _::::ヽ_
  / / °ヽ_ヽv /:/ °ヽ::::::ヽ
 / /.( ̄( ̄__丶 ..( ̄(\  ::::|     ぐぐってもわかんないよ〜
. | .:::::::: )  )/ / tーーー|ヽ)  ) .::::: ::|
. | .::::...(  (..||.    | (  (    ::|     だれかたすけて〜
. | :::.  )  )| |⊂ニヽ .| ! )  )   ::::|
 | :  (  ( | |  |:::T::::.| (  (    ::|
 \:  )  )ト--^^^^^┤ )  )   丿
  / (  (        (  .(   \
/  .、.)  )       /  \  _ \

INDY TIPS
monazilla.org/document/indytips.html

DelWiki - Indy
onigiri.s3.xrea.com:8080/delphi/index.php?Indy

Indy 日本語ヘルプ
www.borland.co.jp/delphi/del7docup.html

271 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 20:02:39 ]
>>179氏を参考にIndy9のインスコまでは完了した。
んで、IdUDPClientを使おうと思います。

送信についてはSendBufferでおkというのはわかったのだが、
受信をするにはReceiveBufferしか見当たらない・・・
やっぱりこれってスレッドで回さないとあかんのでしょうか?

NMUDPみたくReceiveイベントがあれば楽なのに・・・orz

272 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 20:48:46 ]
>>271
うん。でもスレッドコンポーネントとか使えば楽なんじゃない?

273 名前:271 mailto:sage [2005/06/22(水) 09:59:41 ]
>>272情報dクス
スレッドコンポーネントっちゅーのは使ったことないんですが、
ttp://www.asahi-net.or.jp/~nk2w-ishr/progdtl.htm#KThdComp
これのことですか?
なんとなく使用方法はわかったと思います。
中身は普通のスレッドオブジェクトと同じっぽいですね。

で、もう一つ質問があるのですが、ひとまずスレッドではなくボタンイベントにて
ReceiveBufferを呼び出すようなサンプルを作り、受信しようとしたのですが、
受信してくれない様子でした。
引数の設定で解決するんかなぁ?って思っております。
晒そうと思ったが現在手元にナッシングですので後ほど晒します。

274 名前:271 mailto:sage [2005/06/22(水) 18:41:20 ]
自己レス
なんとか動作できました。
IdUDPClientではなくIdUDPServerを使用したところ、
スレッドにしなくてもOnUDPReadイベントが実装されて
いたので、私の理想通りなことが出来ました。
ちなみに>>273で出来ないと言っていたのは、Bindingsに
ハンドルを指定しておりませんでした。
(その前はActiveがfalseのままで出来なかったり・・・もあった)

晒すとこんな感じ
static char buff[MAX_DATA];
void __fastcall TReadingForm::IdUDPServer1UDPRead(TObject *Sender,
TStream *AData, TIdSocketHandle *ABinding)
{
for(int i = 0; i < MAX_DATA; i++) buff[i] = '\0';

IdUDPServer1->ReceiveBuffer(buff, 8192, -1);
〜受信処理〜
}
ご協力ありがとうございましたm(。_。;)m

275 名前:271 mailto:sage [2005/06/23(木) 13:29:24 ]
自分で修正
IdUDPServer1->ReceiveBuffer(buff, AData->Size, -1);
ADataに受信バイト数が入っているから、こう書いたほうがヨサゲ

276 名前:271 [2005/06/23(木) 15:36:29 ]
チョ→阿呆なことをしていることが発覚
static char buff[MAX_DATA];
void __fastcall TReadingForm::IdUDPServer1UDPRead(TObject *Sender,
TStream *AData, TIdSocketHandle *ABinding)
{
for(int i = 0; i < MAX_DATA; i++) buff[i] = '\0';

AData->ReadBuffer(buff, AData->Size);
〜受信処理〜
}

元々IdUDPServer1UDPReadが受信コールバックで入ってきているのに
更にIdUDPServer1->ReceiveBuffer(buff, AData->Size, -1);って受信待ちに
したらダメぢゃん_| ̄|○

兎も角、これで本当に正常に動作しているっぽいのでご参考あれ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<200KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef