1 / 12

クライアントとサーバ

クライアントとサーバ. ネットワークを利用した データのやりとりの手順. クライアント b 307-□□. サーバ b 307-○○. 待ち受け開始. ポート 9999 で待ち受け中. procedure TForm1.N2Click(Sender: TObject); begin ServerSocket1.Port := 9999; // ポート番号を 9999 番に指定 ServerSocket1.Open; // 待ち受けを開始する end ;.

Download Presentation

クライアントとサーバ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. クライアントとサーバ ネットワークを利用した データのやりとりの手順

  2. クライアントb 307-□□ サーバb 307-○○ 待ち受け開始 ポート9999で待ち受け中 procedure TForm1.N2Click(Sender: TObject); begin ServerSocket1.Port := 9999; // ポート番号を 9999 番に指定 ServerSocket1.Open; // 待ち受けを開始する end; procedure TForm1.ServerSocket1Listen(Sender: TObject; Socket: TCustomWinSocket); // 待ち受け中 var port : String; begin port := IntToStr(ServerSocket1.Port); // ポート番号を取得 memo1.Lines.Add(‘ポート ’ + port + ‘ で待ち受け中...’); // ポート番号と待ち受け中であることを Memo に表示 end;

  3. クライアントb 307-□□ サーバb 307-○○ 待ち受け開始 Host: b307-○○ Port: 9999 ポート9999で待ち受け中 接 続 ホスト名検索中... procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Host := Edit1.Text; ClientSocket1.Port := StrToInt(Edit2.Text); ClientSocket1.Open; end; procedure TForm1.ClientSocket1Lookup(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('ホスト名検索中...'); end;

  4. クライアントb 307-□□ サーバb 307-○○ 待ち受け開始 Host: b307-○○ Port: 9999 接 続 ポート9999で待ち受け中 ポート9999で待ち受け中 b307-○○・・・> 接続中... ホスト名検索中... procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); // クライアントが接続 begin rmhost := ServerSocket1.Socket.Connections[0].RemoteHost; // クライアントのホスト名を取得 memo1.Lines.Add(rmhost + '> 接続中...'); // クライアントのホスト名と接続中であることを Memo に表示 end;

  5. クライアントb 307-□□ サーバb 307-○○ Host: b307-○○ Port: 9999 待ち受け開始 Host: b307-○○ Port: 9999 接 続 ポート9999で待ち受け中 b307-○○・・・> 接続中... ホスト名検索中... ホスト名検索中... 接続されました ホスト名検索中... 接続されました 接続中... procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin memo1.Lines.Add(‘接続されました’); // Memo コンポーネントに1行表示する Edit1.Enabled := false; Edit2.Enabled := false; end; procedure TForm1.ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket); // 接続中 begin memo1.Lines.Add('接続中...') end;

  6. クライアントb 307-□□ サーバb 307-○○ 待ち受け開始 Host: b307-○○ Port: 9999 接 続 ポート9999で待ち受け中 b307-○○・・・> 接続中... ホスト名検索中... 接続されました 接続中...

  7. クライアントb 307-□□ サーバb 307-○○ 待ち受け開始 Host: b307-○○ Port: 9999 こんにちは!  △ △ △ で~す。 ポート9999で待ち受け中 b307-○○・・・> 接続中... 接 続 送 信 ホスト名検索中... 接続されました 接続中... ホスト名検索中... 接続されました 接続中... こんにちは! △△△で~す。 procedure TForm1.Button3Click(Sender: TObject); begin memo1.Lines.Add(edit3.text); ClientSocket1.Socket.SendText(Edit3.text+#13#10); // ソケットに文字列を送信する。文字列の最後に改行コード #13#10 を追加する。 edit3.text := ''; end;

  8. クライアントb 307-□□ サーバb 307-○○ 待ち受け開始 Host: b307-○○ Port: 9999 ポート9999で待ち受け中 b307-○○・・・> 接続中... 接 続 ポート9999で待ち受け中 b307-○○・・・> 接続中... b307-○○・・・>こんにちは!  △ △ △ で~す。 ホスト名検索中... 接続されました 接続中... こんにちは! △△△で~す。 procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); // クライアントからのデータを受信 var msg : String; begin msg := ServerSocket1.Socket.Connections[0].ReceiveText; // クライアントから受信した文字列を msg に保存 memo1.Lines.Add(rmhost + ‘> ’ + msg); // 文字列 msg を Memo に表示 end;

  9. クライアントb 307-□□ サーバb 307-○○ 待ち受け開始 Host: b307-○○ Port: 9999 接 続 ポート9999で待ち受け中 b307-○○・・・> 接続中... b307-○○・・・>こんにちは!  △ △ △ で~す。 ホスト名検索中... 接続されました 接続中... こんにちは! △△△で~す。

  10. クライアントb 307-□□ サーバb 307-○○ Host: b307-○○ Port: 9999 待ち受け開始 Host: b307-○○ Port: 9999 接 続 切 断 ポート9999で待ち受け中 b307-○○・・・> 接続中... b307-○○・・・>こんにちは!  △ △ △ で~す。 ホスト名検索中... 接続されました 接続中... ホスト名検索中... 接続されました 接続中... 切断されました procedure TForm1.Button2Click(Sender: TObject); begin ClientSocket1.Close; end; procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); begin memo1.Lines.Add('切断されました'); Edit1.Enabled := true; Edit2.Enabled := true; end;

  11. クライアントb 307-□□ サーバb 307-○○ 待ち受け開始 Host: b307-○○ Port: 9999 ポート9999で待ち受け中 b307-○○・・・> 接続中... b307-○○・・・>こんにちは!  △ △ △ で~す。 ポート9999で待ち受け中 b307-○○・・・> 接続中... b307-○○・・・>こんにちは!  △ △ △ で~す。 b307-○○・・・>切断 ホスト名検索中... 接続されました 接続中... 切断されました procedure TForm1.ServerSocket1ClientDisconnect(Sender: Socket: TCustomWinSocket); TObject; // クライアントが切断 begin memo1.Lines.Add(rmhost + ‘> 切断’); // クライアントが切断したことを Memo に表示 end;

  12. 課   題 • サーバ側の「待ち受け終了」をクリックし,「終了」をクリックした部分を追加しなさい。 • クライアント側でエラー発生した場合を分岐部分として追加しなさい。 • サーバ側でエラー発生した場合を分岐部分として追加しなさい。 • より分かりやすくなるように改良をしなさい。 • 流れをフローチャートで表しなさい。

More Related