大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 編程入門,Java中socket編程的學習

編程入門,Java中socket編程的學習

更新時間:2020-05-09 15:28:00 來源:動力節點 瀏覽2337次

 JavaSocket編程服務器Sockets,文章中會有代碼列出,對Java開發感興趣的小伙伴就隨著小編一起來了解一下吧。

編程入門,Java中socket編程的學習

    具體如下:

    列表9.2是一個服務器應用程序的一部分。

    列表9.2一個簡單的服務器程序

    /***一個監聽端口并提供HTML文檔的程序.*/classSimpleWebServer{publicstaticvoidmain(Stringargs[]){ServerSocketserverSocket=null;SocketclientSocket=null;intconnects=0;try{{//建立一個服務器socketserverSocket=newServerSocket(80,5);while(connects<5){//等待連接clientSocket=serverSocket.accept();//服務連接ServiceClient(clientSocket);connects++;}serverSocket.close();}catch(IOExceptionioe){System.out.println("ErrorinSimpleWebServer:"+ioe);}}publicstaticvoidServiceClient(Socketclient)throwsIOException{DataInputStreaminbound=null;DataOutputStreamoutbound=null;try{//得到IO流inbound=newDataInputStream(client.getInputStream());outbound=newDataOutputStream(client.getOutputStream());//格式化輸出(回應頭和很少的HTML文檔)StringBufferbuffer=PrepareOutput();StringinputLine;while((inputLine=inbound.readLine())!=null){//如果到了HTTP請求的尾部,就發送回應if(inputLine.equals("")){outbound.writeBytes(buffer.toString());break;}}}finally{//清除System.out.println("Cleaningupconnection:"+client);tln("Cleaningupconnection:"+client);outbound.close();inbound.close();client.close();client.close();}}

    服務器并不是主動地建立連接.相反地,他們是被動地監聽一個客戶端的連接請示然后給他們服務.服務器是由類ServerSocket來建立的.下面的程序建立了一個服務器端socket并把它綁定到80端口:

    ServerSocketserverSocket=newServerSocket(80,5);

    第一個參數是服務器要監聽的端口.第二個參數是可選的.API文檔中說明了這是一個監聽時間,但是在傳統的socket程序中第二個參數是監聽深度.一個服務器可以同時接收多個連接請求,但是每次只能處理一個.監聽堆是一個無回答的連接請求隊列.上面的請求建立一個連接來處理最后五個請求.如果省略了后面的一個參數,則默認值是50。

    ServerSocketserverSocket=newServerSocket(80,5);

    一旦socket建立了并開始監聽連接,進來的連接將會建立并放在監聽堆.accetp()方法把在堆中的連接取出來。

    SocketclientSocket=serverSocket.accept();

    這個方法返回一個用來與來訪者對話的客戶端連接.服務器本身不可能建立對話,相反地,服務器socket會使用accept()方法來產生一個新的socket.服務器socket依舊打開并排列新的連接請求。

    與客戶端socket一樣,下面的一步建立輸入和輸出流:

  DataInputStreaminbound=newDataInputStream(clientSocket.getInputStream());DataOutputStreamoutbound=newDataOutputStream(clientSocket.getOutputStream());

    一般的I/O操作可以在新建的流中運用.在服務器回應前它等待客戶端發送一個空白的行.當會話結束時,服務器關閉流和客戶端socket.如果在隊列中沒有請示將會出現什么情況呢?那個方法將會等待一個的到來.這個行為叫阻塞.accept()方法將會阻塞服務器線程直到一個呼叫到來.當5個連接處理完閉之后,服務器退出.任何的在隊列中的呼叫將會被取消。

    所有的服務器都要有以下的基本的步驟:

    1.建立一個服務器socket并開始監聽.2.使用accept()方法取得新的連接.3.建立輸入和輸出流.4.在已有的協議上產生會話.5.關閉客戶端流和socket.6.回到第二步或者到第七步.7.關閉服務器socket.

編程入門,Java中socket編程的學習

 以上就是動力節點java培訓機構的小編針對“編程入門,Java中socket編程的學習”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 一级韩国aa毛片免费观看 | 午夜精品久久久久久久 | 狠狠综合久久综合网站 | 亚洲曰本大成网站mmm | 天天草夜夜草 | 看全色黄大色大片免费久黄久 | 欧美成人免费夜夜黄啪啪 | 97在线观看免费版 | 久久久精品久久久久久久久久久 | 天天射综合网站 | 动漫美女h片黄动漫在线观看 | 国产大片在线观看 | 哪个网站能看毛片 | 久9热精品视频在线观看 | 久久亚洲日本不卡一区二区 | 久久一二| 一级毛片q片 | 可以免费观看一级毛片黄a 可以直接看的毛片 | 久青草视频97国内免费影视 | 婷婷开心激情 | 亚洲综合资源 | 成人网18免费视频 | 国产精品手机网站 | 热99re久久精品天堂vr | 国产偷国产偷亚洲高清在线 | 国产一区二区高清 | 香蕉视频在线观看黄 | 成人短视频视频在线观看网站 | 国产在线观看美女福利精 | 日韩中文字幕在线 | 成人精品国产亚洲 | 亚洲成人免费在线观看 | 天天综合亚洲 | 热99re久久精品天堂vr | 波多野结衣一区二区 三区 波多野结衣一区二区三区 波多野结衣一区二区三区高清在线 | 男女xxⅹ爽免费视频 | 久久人人精品 | 五月婷在线视频 | 内衣办公室动漫久久影院 | 日韩精品一区二区在线观看 | 最新黄色免费网站 |