濮阳杆衣贸易有限公司

主頁 > 知識庫 > ServerSocket默認(rèn)邦定IP實(shí)現(xiàn)過程詳解

ServerSocket默認(rèn)邦定IP實(shí)現(xiàn)過程詳解

熱門標(biāo)簽:云南云電銷機(jī)器人招商 長沙回?fù)芡夂粝到y(tǒng) 400 電話 申請費(fèi)用 江蘇自動(dòng)外呼系統(tǒng)一般多少錢 ai電話機(jī)器人營銷 山東電信外呼系統(tǒng)靠譜嗎 信貸電銷機(jī)器人系統(tǒng) 鸚鵡螺號航海地圖標(biāo)注時(shí)間 比較穩(wěn)定的外呼系統(tǒng)

開發(fā)中需要開啟服務(wù)端的時(shí)候,本地測試都是直接寫端口,實(shí)際環(huán)境也是需要指定要邦定的IP才可以。

因?yàn)閷τ诜?wù)器來說,有時(shí)它不止一塊網(wǎng)卡,而我們系統(tǒng)一定是通過指定的IP和端口進(jìn)行通信的,所以服務(wù)端所使用的IP和端口都需要定義配置文件。

那么在平常測試時(shí),在沒有指定IP的情況下,ServerSocket到底邦定到哪里了?

在這種情況下,服務(wù)器會(huì)把此端口綁定到0.0.0.0上面,即在所有IP上面都綁定,即能在每個(gè)ip上面收到請求。至于0.0.0.0是什么,這里就不說了。

下面是一個(gè)測試程序,通過如下程序即可看到到底是怎么樣的情況:

package test;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Test {
	public static void main(String[] args) throws Exception {
		SocketClient client = new SocketClient();
		new Thread(client).start();
		
		ServerSocket serverSocket = new ServerSocket();
		serverSocket.bind(new InetSocketAddress(8888));
//		serverSocket.bind(new InetSocketAddress("127.0.0.1",8888));
//		serverSocket.bind(new InetSocketAddress("192.168.1.100",8888));
		System.out.println(serverSocket.toString());
		serverSocket.accept();
	}
}
class SocketClient implements Runnable{
	public void run() {
		try {
			Thread.sleep(2000);
			try {
				Socket socket = new Socket("127.0.0.1", 8888);
				System.out.println("127.0.0.1 成功" + socket.toString());
			} catch (Exception e) {
				System.err.println("127.0.0.1 失敗");
			}
			try {
				Socket socket = new Socket("192.168.1.100", 8888);
				System.out.println("192.168.1.100 成功" + socket.toString());
			} catch (Exception e) {
				System.err.println("192.168.1.100 失敗");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

此時(shí)的打印結(jié)果是:

ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=8888]
127.0.0.1 成功Socket[addr=/127.0.0.1,port=8888,localport=59213]
192.168.1.100 成功Socket[addr=/192.168.1.100,port=8888,localport=59214]

使用127.0.0.1時(shí)打印結(jié)果:

ServerSocket[addr=/127.0.0.1,port=0,localport=8888]
127.0.0.1 成功Socket[addr=/127.0.0.1,port=8888,localport=59416]
192.168.1.100 失敗

使用192.168.1.100時(shí)打印結(jié)果:

ServerSocket[addr=/192.168.1.100,port=0,localport=8888]
127.0.0.1 失敗
192.168.1.100 成功Socket[addr=/192.168.1.100,port=8888,localport=59429]

可以看到默認(rèn)邦定到的是0.0.0.0,此時(shí)使用任何能標(biāo)記到本臺電腦的IP都可以訪問到8888端口。

當(dāng)然,這也不是雙網(wǎng)卡的驗(yàn)證,因?yàn)檫€是在一個(gè)網(wǎng)卡上玩。有條件的可以到刀片機(jī)上小測一把。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:運(yùn)城 烏海 亳州 澳門 齊齊哈爾 衡陽 嘉興 拉薩

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ServerSocket默認(rèn)邦定IP實(shí)現(xiàn)過程詳解》,本文關(guān)鍵詞  ServerSocket,默認(rèn),邦定,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ServerSocket默認(rèn)邦定IP實(shí)現(xiàn)過程詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于ServerSocket默認(rèn)邦定IP實(shí)現(xiàn)過程詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    山西省| 延寿县| 阜平县| 长岭县| 洪洞县| 乐安县| 陆河县| 武陟县| 东光县| 芦山县| 桐乡市| 宁陕县| 河曲县| 蒙自县| 涞水县| 上犹县| 台前县| 册亨县| 陆良县| 塔河县| 东光县| 新晃| 汉沽区| 图们市| 噶尔县| 安图县| 临朐县| 麻栗坡县| 贵州省| 开平市| 大田县| 蛟河市| 靖江市| 昂仁县| 涡阳县| 平利县| 泗洪县| 遵义市| 略阳县| 镇宁| 习水县|