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;