ChatProject開発メモ
| Delphi 6 Personalで開発中のChatProjectについての覚書。 |
CONTENTS
var IsServer : Boolean; // 起動モードフラグ。True=サーバ、False=クライアント。
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsServer then // サーバモードならば
begin
ServerSocket1.Port := 0; // ポート番号指定
ServerSocket1.Open; // サーバとして通信オープン
end
else // クライアントモードならば
begin
ClientSocket1.Address := '127.0.0.1'; // IPアドレス指定
ClientSocket1.Port := 0; // ポート番号指定
ClientSocket1.Open; // クライアントとして通信オープン
end;
end;
var IsServer : Boolean; // 起動モードフラグ。True=サーバ、False=クライアント。
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
i : Integer;
begin
if Key = #13 then // Enterキーが押された場合
begin
if IsServer then // サーバモードなら、
begin
Memo1.Lines.Add(Edit1.Text); // 自身のメッセージを表示
for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
ServerSocket1.Socket.Connections[i].SendText(Edit1.Text); // 全クライアントに送信
end
else // クライアントモードならば
ClientSocket.Socket.SendText(str); // サーバにメッセージ送信
Edit1.Text := ''; // 送信したメッセージは消去
end;
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket); // クライアントモードでメッセージを受信した場合
begin
Memo1.Lines.Add(Socket.ReceiveText); // サーバから受信したメッセージを表示
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket); // サーバモードでメッセージを受信した場合
var
str : String;
i : Integer;
begin
str := Socket.ReceiveText;
Memo1.Lines.Add(str); // クライアントから受信したメッセージを表示
for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do // 受信メッセージを
ServerSocket1.Socket.Connections[i].SendText(str); // 全クライアントに送信
end;