java學習筆記--------java網絡編程基礎一

今天才開始接觸java網絡編程,作爲一個程序菜鳥,只是基本的學習了一下ServerSocket和Socket,估計連皮毛都算不上,唉,一步一步網上爬。。。


模擬服務器使用了ServerSocket對本機的9999端口進行監聽,而使用Socket模擬客戶端與9999端口服務器進行通信,交換數

(PS:可以在cmd中使用netstat -an來查看端口使用情況,也可以使用netstat -anb來檢查端口使用詳情,注意以管理員身份運行cmd)


代碼如下:

服務器:


//定義一個服務器   監聽9999端口
package ServerTest1;

import java.io.*;
import java.net.*;

public class MyServer1 {
	
	public MyServer1(){
		try {
			//用ServerSocket在9999端口進行監聽
			ServerSocket ss = new ServerSocket(9999);
			System.out.println("我是服務器,我在9999端口進行監聽");
			//等待某個客戶端程序來連接,該函數會返回一個socket連接     
			//等待過程中程序會在下面一行代碼卡住,直到有客戶端進程連接
			Socket s = ss.accept();
			System.out.println("連接建立");
			
			//連接成功後   接收數據
			InputStreamReader isr = new InputStreamReader(s.getInputStream());
			BufferedReader br = new BufferedReader(isr);
			
			System.out.println("我是服務器,我接受到了數據:"+br.readLine());
			
			//服務器接受到數據後,反饋數據給客戶端
			//需要定義服務器自己的PrintWriter
			PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
			pw.println("客戶端你好,我是服務器");
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		MyServer1 ms = new MyServer1();
	}

}
客戶端:
//定義一個客戶端,用於與9999端口的服務器程序進行連接交互
package ClientTest1;

import java.io.*;
import java.net.*;

public class MyClient1 {

	public MyClient1(){
		try {
			//使用Socket與本機9999端口連接
			Socket s = new Socket("127.0.0.1",9999);
			
			//連接成功後   向服務器發送數據
			//我們通過pw來向s寫入數據    true代表即時刷新
			PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
			pw.println("服務器你好,我是客戶端^_^");
			
			//接受來自服務器的反饋
			InputStreamReader isr = new InputStreamReader(s.getInputStream());
			BufferedReader br = new BufferedReader(isr);
			
			System.out.println("我是客戶端,收到反饋:"+br.readLine());
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		MyClient1  mc = new MyClient1();
	}

}

運行效果:

服務器:

             

客戶端:

               

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