1. java中的socket客戶端的埠如何綁定
java中的socket客戶端只需用伺服器所在機器的ip以及伺服器的埠作為參數創建一個Socket對象就可以了,客戶端的代碼可以看下實例:
Socket socket = new Socket("168.160.12.42",9998);
或:
Socket socket = new Socket(InetAddress.getLocalHost(),5678); // 向主機名為InetAddress.getLocalHost()的伺服器申請連接
客戶機必須知道有關伺服器的IP地址,對於著一點Java也提供了一個相關的類InetAddress 該對象的實例必須通過它的靜態方法來提供,它的靜態方法主要提供了得到本機IP 和通過名字或IP直接得到InetAddress的方法。
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
以上的程序代碼建立了一個Socket對象,這個對象連接到ip地址為168.160.12.42的主機上、埠為9998的伺服器對象。並且建立了輸入流和輸出流,分別對應伺服器的輸出和客戶端的寫入。
2. java socket通信如何設置連接時長
使用jdk中的setSoTimeout(inttimeout)方法,以毫秒為單位。
參考代碼:
SocketAddressaddress=newInetSocketAddress("192.168.0.104",8888);
ServerSockets=newServerSocket();
s.bind(address);
Socketsocket=s.accept();
socket.setSoTimeout(5*1000);//5秒鍾
將此選項設為非零的超時值時,在與此Socket關聯的InputStream上調用read()將只阻塞此時間長度。
如果超過超時值,將引發java.net.SocketTimeoutException,雖然Socket仍舊有效。選項必須在進入阻塞操作前被啟用才能生效。
另外:超時值必須是>0的數。超時值為0被解釋為無窮大超時值。