Java Socket 用法:
package zrj.java.net.socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
public class MySocketTest {
Socket socke = new Socket();
public void setSocke() throws SocketException{
// 如果 socket 的 InputStream 中
socke.setSoTimeout(5*1000) ;
}
public static final int PROT = 13;
public static void main(String[] args) {
// if(args.length != 1){
// System.out.println("地址無效");
// return ;
// }
String hostName = "";
try {
InetAddress inetAddress = InetAddress.getLocalHost();
System.out.println(inetAddress.toString());
Socket socket = new Socket(inetAddress, PROT); // 創建 套接字
socket.setSoTimeout(2000);
System.out.println("連接服務器成功");
BufferedReader bufreader = new BufferedReader( new InputStreamReader(socket.getInputStream()));
System.out.println("Reads" + bufreader.readLine().toString());
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
System.out.println("Can not Connection" + e);
e.printStackTrace();
} catch (IOException e) {
System.out.println("Error" + e);
}
}
}
Java SockeServert用法:
package zrj.java.net.socket;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServerSocket {
Socket socket = null;
public static final int PORT = 13;
ServerSocket server;
public MyServerSocket() {
try {
/*
* 1:此構造函數的端口號如果指定爲 0 則使用任意的 空閒的端口號 但是客戶端不能訪問服務
* 2:默認情況下隊列的大小設置 50 個套接字連接
* 3:如果端口被綁定, 或者a
*/
server = new ServerSocket(PORT);
System.out.println("服務器IP爲" +server.getInetAddress()+"\n服務器啓動等待連接\n");
while(true){
socket = server.accept();
System.out.println("客服端IP爲"+ socket.getInetAddress().toString());
//建立輸出流
OutputStream out = socket.getOutputStream();
//打印流
PrintWriter pout = new PrintWriter(out);
//Thread.sleep(5000);
pout.print(new java.util.Date());
pout.flush();
out.close();
socket.close();
}
} catch (IOException e) { //
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
new MyServerSocket();
}
}