|目次
|車
|PC
|基地祭
|写真
|雑記
|質問の前に
|作者
|
2002年8月31日作成 2002年8月31日更新
Delphi 6 Personal で「伺か」をしゃべらせてみる
Delphi 6 Personal で「伺か」をしゃべらせてみようとおもったんです。TClientSocketを使えばよさそうってことは、なんとなくわかったんですが、Personal版にはTClientSocketのヘルプが含まれていないでしょう。使い方がよくわからなくて困ったなと思っていたら、MCI_Error's programming siteさんのwebサイトで、TClientSocketを使用した、簡単な通信コンポーネントの作成という記事を見つけまして、参考にしながら、なんとなーく書いてみました。
あ、SSTPについては、SSTPの仕様書を読んどいてください。
れんしゅうってことで、ボタンを押したら、伺かが何かしゃべるってのを作ってみます。
とりあえずこんなフォームをつくります。まあ、適当にやってください。
で、ボタンが押された時に、SSTPサーバーに接続するように、Button1のOnClickイベントに処理を書く。
ClientSocket1.Host:='localhost';
ClientSocket1.Port:=9801;
ClientSocket1.Open;
|
接続が完了したら、ClientSocket1のOnConnectイベントが発生するので、そこでメッセージを送信する。
ClientSocket1.Socket.SendText('NOTIFY SSTP/1.1'+#13#10);
ClientSocket1.Socket.SendText('Sender: さくら'+#13#10);
ClientSocket1.Socket.SendText('Event: OnMusicPlay'+#13#10);
ClientSocket1.Socket.SendText('Reference0: 元祖高木ブー伝説'+#13#10);
ClientSocket1.Socket.SendText('Reference1: 筋肉少女帯'+#13#10);
ClientSocket1.Socket.SendText('IfGhost: なる,ゆうか'+#13#10);
ClientSocket1.Socket.SendText('Script: \h\s0‥‥\w8\w8高木ブーだね。\u\s0‥‥\e'+#13#10);
ClientSocket1.Socket.SendText('IfGhost: さくら,うにゅう'+#13#10);
ClientSocket1.Socket.SendText('Script: \h\s0‥‥\w8\w8高木ブーだね。\u\s0‥‥\w8\w8むう。\e'+#13#10);
ClientSocket1.Socket.SendText('Charset: Shift_JIS'+#13+#10);
ClientSocket1.Socket.SendText(#13#10);
|
ここで、改行コードを入れ忘れないように注意しよう。
サーバーからなにかメッセージを受信したら、OnReadイベントが発生するので、そこで、受信したメッセージをmemoに表示する。
Memo1.Lines.Append(ClientSocket1.Socket.ReceiveText);
|
ずいぶん簡単だけれど、これでおしまいだ。実行してみるとこんな感じ
ソース全体はこんな感じ。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
ClientSocket1: TClientSocket;
procedure Button1Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host:='localhost';
ClientSocket1.Port:=9801;
ClientSocket1.Open;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ClientSocket1.Socket.SendText('NOTIFY SSTP/1.1'+#13#10);
ClientSocket1.Socket.SendText('Sender: さくら'+#13#10);
ClientSocket1.Socket.SendText('Event: OnMusicPlay'+#13#10);
ClientSocket1.Socket.SendText('Reference0: 元祖高木ブー伝説'+#13#10);
ClientSocket1.Socket.SendText('Reference1: 筋肉少女帯'+#13#10);
ClientSocket1.Socket.SendText('IfGhost: なる,ゆうか'+#13#10);
ClientSocket1.Socket.SendText('Script: \h\s0‥‥\w8\w8高木ブーだね。\u\s0‥‥\e'+#13#10);
ClientSocket1.Socket.SendText('IfGhost: さくら,うにゅう'+#13#10);
ClientSocket1.Socket.SendText('Script: \h\s0‥‥\w8\w8高木ブーだね。\u\s0‥‥\w8\w8むう。\e'+#13#10);
ClientSocket1.Socket.SendText('Charset: Shift_JIS'+#13+#10);
ClientSocket1.Socket.SendText(#13#10);
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Append(ClientSocket1.Socket.ReceiveText);
end;
end.
|
|目次
|車
|PC
|基地祭
|写真
|雑記
|質問の前に
|作者
|privacy policy
|
webmaster@kyoutan.jpn.org
佐藤恭一 を著作者とするこのページは クリエイティブ・コモンズの 表示 4.0 国際 ライセンスで提供されています。
('A`)