国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

基于Jave的Web服務工作機制(3)

2024-07-21 02:14:19
字體:
來源:轉載
供稿:網友
serversocket 類

 

  socket 類表示的是客戶端的socket。無論什么時候,只要你想連接到一個遠程服務器的應用,你都要構建一個socket。如果你想執行一個服務器應用程序,比如http服務或者ftp服務的程序,那么你需要使用不同的途徑。因為你的服務器必須一直是開機閑置,所以它不知道什么時候客戶機試圖來連接它。

  這個時候,需要使用java.net.serversocket 類。它會實現一個服務器socket。一個服務器socket會等待來自客戶端的連接。一旦它接收到一個連接請求,它就會創建一個 socket 實例來處理和客戶端通訊的問題。

  要創建一個服務器socket,可以使用四種serversocket類構造方法中的一種來實現。你需要制定服務器socket監聽的ip地址和端口。 典型的,ip地址如果是127.0.0.1,意味著服務器socket將監聽本地機器。這個被監聽的ip地址被認為是一種綁定地址。server socket的另一個重要屬性是它的 backlog屬性,它是在server socket拒絕連接請求前,能夠接受的連接請求的最大隊列長度。

  serversocket類的構造函數之一如下:

  public serversocket(int port, int backlog, inetaddress bindingaddress);
  對于這個構造函數而言,綁定地址必須是java.net.inetaddress 的一個實例。一個簡單的辦法是通過調用它的靜態方法getbyname來構造一個inetaddres對象。該方法來一個包含主機名的字符串參數:

  inetaddress.getbyname("127.0.0.1");
  下面一行代碼構造一個serversocket ,它監聽本地機器的8080端口,backlog設置為1。

  new serversocket(8080, 1, inetaddress.getbyname("127.0.0.1"));
  一旦有了一個 serversocket 實例,可以通過調用accept方法來告訴它等待進來的連接請求。這個方法只有在有一個連接請求時才返回。它返回的是socket類的實例。這個socket對象能夠發送和接受來自客戶端應用的字節流,就是第一節所講到的socket類。實際上,accept 是本文提及的唯一一個在應用中使用的方法。

  application應用

  我們的web服務器應用是ex01.pyrmont包的一部分,包含三個類:

  httpserver
  request
  response

  這個應用的入口(靜態main方法)是httpserver類。它創建了一個httpserver 實例來調用它的await方法。 就象這個方法名所暗示的,await 方法在一個指定的端口等待一個http請求,并處理它們,然后發送回應給客戶端。它保持等待狀態,直到收到一個shutdown命令。 (命令名await來代替wait的原因是wait是system.object類中的一個用于線程方面的重要方法)

  應用僅僅只發送靜態資源,比如來自特定目錄的html和圖片文件。不支持動態包頭 (比如日期或者cookie) 。

商業源碼熱門下載www.html.org.cn

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辛集市| 灵丘县| 滕州市| 瓮安县| 耒阳市| 贞丰县| 绥棱县| 新郑市| 蒙山县| 年辖:市辖区| 安义县| 台州市| 洱源县| 龙口市| 八宿县| 南和县| 五指山市| 彭州市| 长兴县| 南和县| 望奎县| 临海市| 屯留县| 高雄县| 平顶山市| 申扎县| 长汀县| 登封市| 阜城县| 太谷县| 攀枝花市| 仪陇县| 中西区| 顺义区| 西安市| 德昌县| 谷城县| 仙居县| 维西| 喀什市| 隆子县|