java網絡編程3-Socket

// 有參構造函數建立的socket會訪問網絡,無參的則不會
//Socket socket=new Socket("www.baidu.com",80); 網絡


// 當本地端口爲0則代表由系統隨機分配端口
//Socket socket=new Socket("www.baidu.com",80,InetAddress.getByName("localhost"),0);socket

 

 

Socket socket = new Socket();
//經過connect方法還能指定鏈接的超時時間,socket的設置最好在connect方法以前調用相關方法
socket.connect(new InetSocketAddress(InetAddress.getByName("www.baidu.com"), 80),5000);函數

 

try {
  if(socket!=null){
  //socket關閉的時候因爲客戶端可能先關閉因此會異常,這時不用處理異常
  socket.close();
  }
} catch (Exception e) {
}spa


//socket即便關閉也能獲取相關的信息
System.out.println(socket.getInetAddress());對象


//判斷sokcet是否有鏈接過遠程機器
System.out.println(socket.isConnected());
//判斷socket是否關閉,socket沒有鏈接過也返回false
System.out.println(socket.isClosed());
//正確判斷socket是否打開
System.out.println(socket.isConnected() && !socket.isClosed()); get

//判斷socket是否有綁定過本地端口
System.out.println(socket.isBound());io


//獲取輸入和輸出流,可獲取遠程的數據和給遠程發送數據,當它們任何一個關閉,socket也會關閉
socket.getInputStream();
socket.getOutputStream();sed


//socket關閉的時候,輸入和輸出流都會自動關閉,下面的方法只關閉相關的流
socket.shutdownInput();
socket.shutdownOutput();構造函數

 

//設置讀取數據超時時間,單位ms
socket.setSoTimeout(1000);方法


//能夠在socket關閉後對象回收後再獲取重複利用 SocketAddress address=new InetSocketAddress("www.baidu.com",80);

相關文章
相關標籤/搜索