首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Beej's Guide to Network Programming 系列第19篇:Client/Server 架構背景與簡單服務器實現

     編輯:關於C語言

6. 客戶/服務器背景知識

網絡世界本質上是客戶進程與服務器進程的對話。以 Telnet 為例:客戶端連接 23 端口,服務端運行的 telnetd 進程處理連接、顯示登錄界面等。

客戶機和服務器的關系

圖 2:客戶機和服務器的關系

客戶-服務器模型可使用 SOCK_STREAM(TCP)、SOCK_DGRAM(UDP)或其他協議,雙端只需協議一致。經典例子:telnet/telnetd、ftp/ftpd、bootp/bootpd。

服務端通常採用 fork() 處理多客戶連接:主進程 accept() 後 fork() 子進程處理具體通信,這是下一節示例的核心模式。

6.1 一個簡單的服務器

該服務器在流式連接上發送字符串 "Hello, World!\n"。測試方法:

$ telnet remotehostname 2349

remotehostname 為運行服務器的機器名。

服務器運行截圖1

服務器運行截圖2

具體代碼請見:Beej's Guide 系列第 19 篇完整代碼

6.2 一個簡單的客戶端

客戶端更簡單:通過 2349 端口連接命令行指定的主機,接收服務器發送的字符串。

具體代碼同樣請見上述鏈接。

摘自 xiaobin_HLJ80 的專欄

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved