<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 天快黑了 閱讀(1822) 評論(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

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

    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人片一区二区| 亚洲成人激情小说| 成人A片产无码免费视频在线观看 成人电影在线免费观看 | 亚洲av再在线观看| 亚洲噜噜噜噜噜影院在线播放| 无遮挡a级毛片免费看| 国产成人精品免费视频动漫 | 无码天堂亚洲国产AV| 18禁美女黄网站色大片免费观看| 国产91久久久久久久免费| 亚洲国产成a人v在线| 影音先锋在线免费观看| 亚洲精品在线免费观看| 国产成人无码区免费内射一片色欲| 国产亚洲精品自在久久| 在线播放免费人成视频网站 | 精品成在人线AV无码免费看| 亚洲大尺码专区影院| 久久精品国产大片免费观看| 亚洲日韩中文字幕日韩在线| 国产精品亚洲片在线花蝴蝶 | 国产成人免费片在线观看| 亚洲无mate20pro麻豆| 日韩内射激情视频在线播放免费 | 四虎在线最新永久免费| 亚洲熟妇无码一区二区三区| 99国产精品永久免费视频 | 国产高清在线免费视频| 特级毛片爽www免费版| 亚洲成a人片在线观看中文动漫| 乱淫片免费影院观看| 青草草色A免费观看在线| 亚洲精品美女久久久久9999| 野花高清在线观看免费3中文| 亚洲码在线中文在线观看| 美女黄网站人色视频免费国产| 中文字幕在线观看亚洲日韩| 亚洲精品成人a在线观看| 国产精品永久免费视频|