1. 程式人生 > >最簡單的實現TCP通訊,利用Socket和ServerSocket套接字

最簡單的實現TCP通訊,利用Socket和ServerSocket套接字

今天剛剛接觸到TCP網路通訊,下面就從最簡單的程式寫起,瞭解它的基本概念後再繼續深入寫後面的程式

簡單程式:

首先我們要建立一個伺服器的檔案,程式碼如下:

public class SverSocket {

	public static void main(String[] args) {
		try {
			ServerSocket ss=new ServerSocket(9990);
			System.out.println("伺服器套接字建立成功");
			System.out.println("伺服器等待連線。。。");
			Socket s=ss.accept();
			System.out.println("與客戶端連線成功");
			s.close();
			ss.close();
		} catch (IOException e) {}
		
	}

}
在列印“伺服器等待連線。。”後伺服器會一直停在Socket s=ss.accept();等待客戶端的連線

再建立個客戶端的檔案,程式碼如下:

public class CliSocket {

	public static void main(String[] args) {
		try {
			Socket s=new Socket("192.168.0.106", 9990);
			s.close();
		} catch (Exception e) {}
		
	}
}

列印結果:是將伺服器的那幾句話都打印出來


接下來就是要用到資料流:

伺服器程式:

public class SerSocket {
	static ServerSocket ss=null;
	static Socket s=null;
	static String str=null;
	static DataInputStream in=null;
	static DataOutputStream out=null;
	public static void main(String[] args) {
		try {
			ss=new ServerSocket(6666);//例項化套接字物件
			System.out.println("例項化服務套接字成功");
			System.out.println("等待客戶端裡連線。。。。");
			s=ss.accept();
			in=new DataInputStream(s.getInputStream());
			out=new DataOutputStream(s.getOutputStream());
			//進入迴圈
			while(true){
				str=in.readUTF();//讀取客戶放入連線中
				out.writeUTF(str);
				System.out.println("伺服器收到"+str);
				try {
					Thread.sleep(1000);//執行緒休眠1秒
				} catch (InterruptedException e) {}
				in.close();
				out.close();
				s.close();
				ss.close();
			}		
		} catch (IOException e) {}
	}
}
客戶端程式程式碼:
public class CliSocket {
	static String str=null;
	static Socket s;
	static DataOutputStream out=null;
	static DataInputStream in=null;

	public static void main(String[] args) {
		try {
			s=new Socket("192.168.0.106", 6666);
			in=new DataInputStream(s.getInputStream());
			out=new DataOutputStream(s.getOutputStream());
			out.writeUTF("我是客戶端");
			while(true){
				str=in.readUTF();
				out.writeUTF(str);
				System.out.println("客戶端收到"+str);
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {}
				in.close();
				out.close();
				s.close();
			}
		} catch (IOException e) {}
	}
}
執行結果:


基礎的就到這,筆者剛學有不足之處還希望大家多多留言大笑,一起討論。