簡單的網絡編程--服務器,客戶端呼應

首先是客戶端代碼
package com.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * 這是一個客戶端 可以連接服務端
 * 
 * @author Eiffel
 * 
 */
public class MyClient1 {

	public static void main(String args[]) {
		new MyClient1();
	}

	// 構造方法
	public MyClient1() {
		try {
			// Socket()就是去連接某個服務器端
			// 127.0.0.1表示服務器的ip 9999表示端口
			Socket s = new Socket("127.0.0.1", 9999);

			// 如果s連接成功,就可以發送數據給服務器
			// 通過pw,向s寫數據,true表示及時刷新
			PrintWriter pw = new PrintWriter(s.getOutputStream(), true);

			pw.println("你好嗎,我是客戶端");

			// 讀取s中傳遞的數據
			BufferedReader br = new BufferedReader(new InputStreamReader(
					s.getInputStream()));

			String response = br.readLine();
			System.out.println("客戶端接收到:" + response);
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


服務器

package com.test1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 這是一個服務器端程序,讓它在9999端口監聽 可以接收從客戶端發來的信息
 * 
 * @author Eiffel
 * 
 */
public class MyServer1 {

	public static void main(String args[]) {
		// 啓動監聽
		new MyServer1();
	}

	// 構造方法
	public MyServer1() {

		try {
			// 首先讓服務器處於監聽狀態
			// 在9999號端口監聽
			ServerSocket ss = new ServerSocket(9999);
			System.out.println("正在監聽9999端口....");
			// 等待某個客戶端來連接,該函數會返回一個Socket連接
			// 會一直監聽,(阻塞態),一直等待到
			Socket s = ss.accept();

			// 讀取s中傳遞的數據
			BufferedReader br = new BufferedReader(new InputStreamReader(
					s.getInputStream()));

			String info = br.readLine();

			System.out.println("服務器接收到的:" + info);

			// 通過pw,向s寫數據,true表示及時刷新
			PrintWriter pw = new PrintWriter(s.getOutputStream(), true);

			pw.println("我是服務器,你好");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}


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