大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java面向對象
Java異常
Java數組
Java常用類
Java集合
Java IO流
Java線程
Java反射
Socket編程
Java注解開發
Java GoF設計模式
HashMap
Java內存模型
Java線性表

Java Socket編程教程

計算機程序的架構

單機版應用程序, 最多只能由一個用戶使用, 如Word程序,記事本程序

C/S結構, Client(客戶端)/Server(服務器). 需要下載,安裝,升級客戶端應用程序, 客戶端與服務器進行通訊, 如QQ

B/S結構, Browser(瀏覽器)/Server(服務器), 用戶只需要有一個瀏覽器即可, 所有操作都由服務器完成

網絡開發的三要素

1.要知道對方計算機在哪兒?  計算機的IP, 網絡中的計算機的IP是唯一的

2.知道程序對應的端口號,  端口號就是一個數字, 一臺計算機中可以安裝很多可以聯網的程序, 每個程序都有一個唯一的端口號

3.通訊協議, 計算機之間的通信標準,如數據傳輸速率、傳輸代碼、代碼結構、傳輸步驟

TCP/IP協議

現在采用的網絡傳輸協議

TCP傳輸控制協議

IP網際協議

TCP/IP協議的傳輸層有兩個常見的傳輸協議: TCP和UDP,  TCP就像我們打電話, UDP就像對講機

TCP傳輸采用三次握手機制

Socket示例

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

public class ChatServer {
	public static void main(String[] args) throws IOException {
		// 創建服務器?端, 注冊當前程序的端口號
		ServerSocket server = new ServerSocket(9090);
		// 接受客戶端的連接,產?生?一個Socket
		Socket socket = server.accept();
		// 獲取Socket的輸?入流, 就是通過這個輸入流獲得客戶端發送給服務器的數據
		BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		// 獲取Socket的輸出流, 就是通過該輸出流, 服務器把數據發送給客戶端
		OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream());
		// 獲取鍵盤的輸?入流,通過該輸入流讀取鍵盤上輸入的數據
		BufferedReader keyboardReader = new BufferedReader(new InputStreamReader(System.in));
		// 不斷讀取客戶端數據
		String line = null;
		while ((line = socketReader.readLine()) != null) {
			System.out.println("客戶端:" + line);
			System.out.print("我說:");
			line = keyboardReader.readLine();
			socketOut.write(line + "\n");
			socketOut.flush();
		}
		// 關閉
		server.close();
	}
}
import java.net.InetAddress;
import java.net.Socket;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.IOException;

public class ChatClient {
	public static void main(String[] args) throws IOException {
		// 建立TCP客戶端與服務器的連接, 指定服務器的IP地址與程序對應的端口號
//		Socket socket = new Socket(InetAddress.getLocalHost(), 9090);
		byte[] addr = {-64 ,-88, -115, 2};   	//把192.168.141.2 IP地址轉換為字節
		InetAddress address = InetAddress.getByAddress(addr) ;
		Socket socket = new Socket(address, 9090);
		// 獲取Socket輸出流對象, 通過該流把數據發送給服務器
		OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream());
		// 獲取Socket輸入流對象, 通過該流獲得服務器發送給客戶端的數據
		BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		// 獲取鍵盤輸入流對象,讀取數據
		BufferedReader keyboardReader = new BufferedReader(new InputStreamReader(System.in));
		String line = null;
		System.out.print("我說:");
		while ((line = keyboardReader.readLine()) != null) {
			socketOut.write(line + "\n");
			// 刷新
			socketOut.flush();
			// 讀取服務器端返回的數據
			line = socketReader.readLine();
			System.out.println("服務器:" + line);
			System.out.print("我說:");
		}
		socket.close();
	}
}

 

全部教程
主站蜘蛛池模板: 欧美午夜在线观看 | 美日韩黄色片 | 亚洲不卡在线观看 | 亚洲精品99久久久久中文字幕 | 欧美成人精品一区二区三区 | 欧美整片在线观看 | 狠狠久久综合伊人不卡 | 亚洲精品一区二区三区香蕉在线看 | 在线视频福利 | 日韩欧美一二三区 | 国产精品亚洲片在线牛牛影视 | 最新欧美精品一区二区三区不卡 | 日日干天天射 | 黑人巨大vs日本妞 | 成人亚州| 久久久久久久性 | 这里只有精品视频 | 久久亚洲一级毛片 | 在线观看国产久青草 | 久久这里只精品 | 俄罗斯美女逼 | 射狠狠| 国产成人福利 | 一男一女一级毛片 | 欧美大吊视频 | 欧美亚洲一区二区三区四 | 色片免费在线观看 | 国产亚洲精品成人a在线 | 一本大道香蕉高清久久 | 日本高清不卡在线观看 | 亚洲欧美乱综合图片区小说区 | 亚洲999 | 国产精品成人观看视频国产奇米 | www性欧美 | 国产成人综合亚洲动漫在线 | 99国产精品免费视频观看 | 国产欧美一区二区 | 欧美午夜性刺激在线观看免费 | 成人在线免费视频播放 | 国产一区二区三区国产精品 | 狠狠色噜噜狠狠狠狠网站视频 |