#navi(コラム/1:1チャット): Not a child page like: コラム/1:1チャット/8
受信処理ができたので、
送信処理を作りましょう。
発言ボタンをダブルクリックして、
ボタンのOnClickイベントを書き換えます。
を
procedure TForm1.Button1Click(Sender: TObject);
var ptr:Pointer;
sz:Integer;
say:string;
begin
say:=Edit1.Text;
Edit1.Text:='';
sz:=Pack(ptr,'t',[@say]);
Session.SetBlock(0,0,ptr,sz);
Session.SetBlock(1,0,ptr,sz);
end;
まず、Editに書かれている内容を文字列型に代入します。
そしたらEditを消します。
そしたら、Unpackの逆で、Packをします。
Packはできたブロックのサイズを返すので、
szに代入し、作ったブロックは第一引数のポインタの参照先になります。
't'ってのは、テキスト一個お願いします、です。
で、そのテキスト一個は[@say]となり、さっきと同じですね。
ブロックを組み立て、サイズがわかったら、
セッション.setBlockで送信します。
第一引数:送る人
第二引数:メッセージ番号(今回は発言しかしないので0
第3引数:ブロックのぽいんた(packの第1引数
第4引数:ブロックの長さ(packの返り値
てなことです。
二人居るので0と1で二回やります。
N3Libは、自分自身への送信は検知して、
あたかも送られてきたかのように処理するので、
ネットワークには送信せずに、受信ブロックキューにいれておきます。
なのでGetBlockで受け取れるわけです。
ついでに、非接続先も検知して退避してくれます。
そうそう、
Open,Close,Join,Leaveも間違って使うと検知します。
デバッグテキストに文句が吐かれますが。
一応メモリリーク等も可能な限り自分で解決してますよ。
#navi(コラム/1:1チャット): Not a child page like: コラム/1:1チャット/8
コンテンツ
最新の12件
2023-06-12
2021-02-15
2013-06-19
2012-07-14
2012-02-04
2012-01-06
2011-03-31
2010-08-26
2010-03-15
2009-10-21
2009-02-12
2008-11-18
メニュー編集
- counter: 327
- today: 1
- yesterday: 0
- online: 2