package com.imooc.socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
?*
?* 基于TCP協議的Socket通信
?* 服務端
?*
?*/
public class Server {
?? ?public static void main(String[] args){
?? ??? ?try {
?? ??? ??? ?//1、創建一個服務器端Socket,即serverSocket,指定綁定的端口并監聽次端口
?? ??? ??? ?ServerSocket serverSocket = new ServerSocket(8888);
?? ??? ??? ?//2、調用accept()方法開始監聽,等待客戶端的連接
?? ??? ??? ?System.out.println("***服務器即將啟動,等待客戶端的連接***");
?? ??? ??? ?Socket socket = serverSocket.accept();
?? ??? ??? ?//3、獲取一個輸入流用來讀取客戶端所發送的登錄信息
?? ??? ??? ?InputStream is = socket.getInputStream(); //字節輸入流
?? ??? ??? ?InputStreamReader isr = new InputStreamReader(is);//將字節流轉換為字符流
?? ??? ??? ?BufferedReader br = new BufferedReader(isr);//為輸入流添加緩沖
?? ??? ??? ?String info = null;
?? ??? ??? ?while((info = br.readLine())!=null){//循環讀取客戶端的信息
?? ??? ??? ??? ?System.out.println("我是服務器,客戶端說:"+info);
?? ??? ??? ?}
?? ??? ??? ?socket.shutdownInput();//關閉輸入流
?? ??? ??? ?//4、獲取輸出流用來響應客戶端的請求
?? ??? ??? ?OutputStream os = socket.getOutputStream();
?? ??? ??? ?PrintWriter pw = new PrintWriter(os);
?? ??? ??? ?pw.write("歡迎您!");
?? ??? ??? ?pw.flush();
?? ??? ??? ?
?? ??? ??? ?
?? ??? ??? ?
?? ??? ??? ?//5、關閉資源
?? ??? ??? ?pw.close();
?? ??? ??? ?os.close();
?? ??? ??? ?br.close();
?? ??? ??? ?isr.close();
?? ??? ??? ?is.close();
?? ??? ??? ?socket.close();
?? ??? ??? ?serverSocket.close();
?? ??? ?} catch (IOException e) {
?? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ?e.printStackTrace();
?? ??? ?}
?? ?}
}

原來我叫小土慕課網給我改了名字
2014-11-01
0 回答
舉報
0/150
提交
取消