java網絡編程 Socket 用法舉例



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();
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章