天天看點

請說明什麼是socket?

    所謂socket通常也稱作"套接字",用于描述ip位址和端口,是一個通信鍊的句柄。

    應用程式通常通過"套接字"向網絡送出請求或者應答網絡請求。 

    以j2sdk-1.3為例,socket和serversocket類庫位于java.net包中。

    serversocket用于伺服器端;

    socket是建立網絡連接配接時使用的。

    在連接配接成功時,應用程式兩端都會産生一個socket執行個體,操作這個執行個體,完成所需的會話。

    對于一個網絡連接配接來說,套接字是平等的,并沒有差别,不因為在伺服器端或在用戶端而産生不同級别。

    不管是socket還是serversocket它們的工作都是通過socketimpl類及其子類完成的。

   重要的socket api:java.net.socket繼承于java.lang.object,有八個構造器,其方法并不多,下面介紹使用最頻繁的三個方法,其它方法大家可以見jdk-1.3文檔。

  accept方法用于産生"阻塞",直到接受到一個連接配接,并且傳回一個用戶端的socket對象執行個體。"阻塞"是一個術語,它使程式運作暫時"停留"在這個地方,直到一個會話産生,然後程式繼續;通常"阻塞"是由循環産生的。 

  getinputstream方法獲得網絡連接配接輸入,同時傳回一個iutputstream對象執行個體。 

  getoutputstream方法連接配接的另一端将得到輸入,同時傳回一個outputstream對象執行個體。 注意:其中getinputstream和getoutputstream方法均會産生一個ioexception,它必須被捕獲,因為它們傳回的流對象,通常都會被另一個流對象使用。