<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Socket Programming Considerations (1)

    Posted on 2010-07-26 09:31 天快黑了 閱讀(1823) 評論(1)  編輯  收藏 所屬分類: Socket
    第一次開博,第一次寫文章。文筆不好,只是記錄一下個人心得。

    最近一直在做Socket程序,這里把一些Socket程序的注意事項總結一下。今天先說說Socket中的Timeout,其它的下次補全。


    1.       Socket Timeout

    Socket程序的時候需要注意設置下面的timeout,避免對方沒有響應的時候,導致Socket程序掛起或等待時間過長

    1.1         Accept Timeout

    Accept timeout 僅對ServerSocket有用。ServerSocket 使用accept()方法來監聽客戶端Socket的連接。

    默認,ServerSocket.accept() 方法會一直阻塞直到有客戶端來連接。通常,我們不需要設置accept timeout.

    但有時候特殊情況,還是要考慮設置accept timeout.

    比如: 程序A給程序B發了一個JMS消息,然后程序A啟動一個Socket Server,想通過socket等待接收程序B的返回消息。如果不設置accept timeout, 并且程序B因為某些原因一直不能連接Socket Server,最終會導致程序A掛起。

    Accept Timeout可以這樣設置:

    ServerSocket serverSocket = new ServerSocket(5555);

    serverSocket.setSoTimeout(5000); // in milliseconds

    while (true) {

        Socket socket = serverSocket.accept();

            …

    }

    1.2         Connect Timeout

    Client端連接Server端的時候,可以指定Connect Timeout

    如果沒有指定,會使用操作系統的默認值:

    OS

    Default TCP timeout

    BSD

    75 seconds

    Linux

    189 seconds

    Solaris

    225 seconds

    Windows XP

    21 seconds

    Connect Timeout可以這樣設置:

    SocketAddress socketAddress = new InetSocketAddress(host, port);

    socket = new Socket();

    socket.connect(socketAddress, connectTimeout);

    1.3         Receive Timeout

    socket從另一方接收數據時,可以設置Receive Timeout

    默認沒有timeout,socket會一直阻塞直到有數據可讀取。

    Receive Timeout可以這樣設置:

    Socket socket = new Socket(host, port);

    socket.setSoTimeout(timeout);

    1.4         Send Timeout

    Send Timeoutsocket給另一方發送數據時使用的。

    不過Java里沒有辦法設置Send Timeout.

    當然,socket發送數據的時候,會首先發送到本機OS的一個buffer內。一般只要一次發送的數據不是很大,即使對方掛起或暫時不能接收數據,也不會導致發送方掛起。


    Feedback

    # re: Socket Programming Considerations (1)  回復  更多評論   

    2010-07-27 10:49 by heqs
    不錯,寫的很詳細。。。期待你的下一章。。。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 5, comments - 25, trackbacks - 0, articles - 1

    Copyright © 天快黑了

    主站蜘蛛池模板: 美女裸免费观看网站| 日韩中文无码有码免费视频| 亚洲国产一级在线观看| 日韩免费人妻AV无码专区蜜桃 | 免费黄色app网站| a级毛片免费完整视频| 久久亚洲精品无码av| 亚洲精品亚洲人成在线麻豆| 亚洲精品视频在线观看免费| 最新国产成人亚洲精品影院| 久久亚洲一区二区| 亚洲国产午夜中文字幕精品黄网站 | 亚洲人成无码网站在线观看| 亚洲av色影在线| 91视频国产免费| 最近中文字幕完整版免费高清| 久久亚洲国产成人影院| 亚洲国产一区二区a毛片| 亚洲综合精品香蕉久久网| 日本中文一区二区三区亚洲| 热99re久久精品精品免费| 久久久受www免费人成| 91亚洲精品视频| 亚洲国产人成在线观看69网站| 日韩免费a级毛片无码a∨ | 亚洲免费视频在线观看| 两性色午夜视频免费播放| 香蕉免费一级视频在线观看| 亚洲国产亚洲综合在线尤物| 亚洲综合激情另类小说区| 91嫩草私人成人亚洲影院| 又粗又黄又猛又爽大片免费| 国产偷伦视频免费观看| 亚洲狠狠色丁香婷婷综合| 7777久久亚洲中文字幕| 国产A在亚洲线播放| 久久亚洲精品成人| 亚洲欧洲日韩不卡| 亚洲成a人片7777| 亚洲综合欧美色五月俺也去| 亚洲欧美中文日韩视频|