一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - ServerSocket默認邦定IP實現過程詳解

ServerSocket默認邦定IP實現過程詳解

2021-07-20 18:08cuisuqiang 服務器知識

這篇文章主要介紹了ServerSocket默認邦定IP實現過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

開發中需要開啟服務端的時候,本地測試都是直接寫端口,實際環境也是需要指定要邦定的IP才可以。

因為對于服務器來說,有時它不止一塊網卡,而我們系統一定是通過指定的IP和端口進行通信的,所以服務端所使用的IP和端口都需要定義配置文件。

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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();
        }
    }
}

此時的打印結果是:

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時打印結果:

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時打印結果:

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]

可以看到默認邦定到的是0.0.0.0,此時使用任何能標記到本臺電腦的IP都可以訪問到8888端口。

當然,這也不是雙網卡的驗證,因為還是在一個網卡上玩。有條件的可以到刀片機上小測一把。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.iteye.com/blog/cuisuqiang-2037769

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美在线视频一区在线观看 | 秋霞综合网| 免费在线观看小视频 | 国产伦精品一区二区三区免费观看 | 亚洲免费黄色网 | 成人区精品一区二区毛片不卡 | 久久爽狠狠添AV激情五月 | 亚洲 制服 欧美 中文字幕 | 女人张开腿让男人桶视频免费大全 | 欧美成人午夜片一一在线观看 | 久久精品手机观看 | 日本一区二区在线不卡 | 日韩欧美高清 | 亚洲国产视频一区 | 国产我不卡 | 手机在线观看国产精选免费 | 2022av小四郎的最新地址 | 成人α片 | 17岁俄罗斯csgo| 欧美一区二区三区在线观看不卡 | 亚洲欧美国产另类视频 | 日本韩国推理片免费观看网站 | 亚洲好视频 | 睡男神的这件小事小说在线阅读 | 精品久久免费视频 | 农村妇女野战bbxxx | 波多野结中文字幕在线69视频 | 日本亚洲欧洲高清有码在线播放 | 俺去俺来也在线www色官网 | 动漫美女人物被黄漫小说 | 免费一区二区视频 | 国产精品视频免费视频 | 久久伊人精品青青草原2021 | 精品视频一区二区观看 | 手机国产乱子伦精品视频 | xxx久久| 激情视频在线播放 | 欧美精品综合一区二区三区 | 亚洲2017天堂色无码 | 国产成人无精品久久久 | 精品欧美男同同性videos |