黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Java面向?qū)ο?/div>
Java異常
Java數(shù)組
Java常用類
Java集合
Java IO流
Java線程
Java反射
Socket編程
Java注解開發(fā)
Java GoF設(shè)計模式
HashMap
Java內(nèi)存模型
Java線性表

Java Socket編程教程

計算機程序的架構(gòu)

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

C/S結(jié)構(gòu), Client(客戶端)/Server(服務(wù)器). 需要下載,安裝,升級客戶端應(yīng)用程序, 客戶端與服務(wù)器進(jìn)行通訊, 如QQ

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

網(wǎng)絡(luò)開發(fā)的三要素

1.要知道對方計算機在哪兒?  計算機的IP, 網(wǎng)絡(luò)中的計算機的IP是唯一的

2.知道程序?qū)?yīng)的端口號,  端口號就是一個數(shù)字, 一臺計算機中可以安裝很多可以聯(lián)網(wǎng)的程序, 每個程序都有一個唯一的端口號

3.通訊協(xié)議, 計算機之間的通信標(biāo)準(zhǔn),如數(shù)據(jù)傳輸速率、傳輸代碼、代碼結(jié)構(gòu)、傳輸步驟

TCP/IP協(xié)議

現(xiàn)在采用的網(wǎng)絡(luò)傳輸協(xié)議

TCP傳輸控制協(xié)議

IP網(wǎng)際協(xié)議

TCP/IP協(xié)議的傳輸層有兩個常見的傳輸協(xié)議: 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 {
		// 創(chuàng)建服務(wù)器?端, 注冊當(dāng)前程序的端口號
		ServerSocket server = new ServerSocket(9090);
		// 接受客戶端的連接,產(chǎn)?生?一個Socket
		Socket socket = server.accept();
		// 獲取Socket的輸?入流, 就是通過這個輸入流獲得客戶端發(fā)送給服務(wù)器的數(shù)據(jù)
		BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		// 獲取Socket的輸出流, 就是通過該輸出流, 服務(wù)器把數(shù)據(jù)發(fā)送給客戶端
		OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream());
		// 獲取鍵盤的輸?入流,通過該輸入流讀取鍵盤上輸入的數(shù)據(jù)
		BufferedReader keyboardReader = new BufferedReader(new InputStreamReader(System.in));
		// 不斷讀取客戶端數(shù)據(jù)
		String line = null;
		while ((line = socketReader.readLine()) != null) {
			System.out.println("客戶端:" + line);
			System.out.print("我說:");
			line = keyboardReader.readLine();
			socketOut.write(line + "\n");
			socketOut.flush();
		}
		// 關(guān)閉
		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客戶端與服務(wù)器的連接, 指定服務(wù)器的IP地址與程序?qū)?yīng)的端口號
//		Socket socket = new Socket(InetAddress.getLocalHost(), 9090);
		byte[] addr = {-64 ,-88, -115, 2};   	//把192.168.141.2 IP地址轉(zhuǎn)換為字節(jié)
		InetAddress address = InetAddress.getByAddress(addr) ;
		Socket socket = new Socket(address, 9090);
		// 獲取Socket輸出流對象, 通過該流把數(shù)據(jù)發(fā)送給服務(wù)器
		OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream());
		// 獲取Socket輸入流對象, 通過該流獲得服務(wù)器發(fā)送給客戶端的數(shù)據(jù)
		BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		// 獲取鍵盤輸入流對象,讀取數(shù)據(jù)
		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();
			// 讀取服務(wù)器端返回的數(shù)據(jù)
			line = socketReader.readLine();
			System.out.println("服務(wù)器:" + line);
			System.out.print("我說:");
		}
		socket.close();
	}
}

 

主站蜘蛛池模板: 一级视频网站 | 国产成人在线视频 | 亚洲成熟xxxx | 成人伊人 | 日本三区视频 | 九九视频免费精品视频免费 | 最近中文免费字幕在线播放 | 香蕉视频网站在线 | 天天躁狠狠躁狠狠躁夜夜躁 | 奇米影视亚洲色图 | 国产精品一区在线免费观看 | 成人公开视频 | 又粗又黄又猛又爽大片免费 | 午夜在线播放视频 | 日日摸日日添夜夜爽97 | 成人小视频免费 | 在线天堂资源www中文在线 | 国产亚洲欧美一区二区 | 国产精品2020观看久久 | 欧美xxxx18动漫| 一级做性色a爰片久久毛片免费 | 欧美日韩一区二区三 | 日韩中文字幕一在线 | 高清一区二区 | 欧美午夜在线播放 | 在线成人观看 | 欧美日韩免费在线 | 日韩精品在线视频观看 | 亚洲成a人片在线观看精品 亚洲成a人片在线观看中 | 三级欧美日韩 | 日韩免费视频一区 | 国产成人精品永久免费视频 | 三级免费网站 | 91深夜福利| 日韩专区亚洲精品欧美专区 | 久久久午夜视频 | 日本欧美视频在线观看 | 国产日韩免费视频 | 香蕉网站视频高清在线观看 | 精品精品国产欧美在线观看 | 亚洲国产精品高清在线一区 |