溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何實現網絡通信項目

發布時間:2021-09-28 17:51:57 來源:億速云 閱讀:159 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“java如何實現網絡通信項目”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“java如何實現網絡通信項目”這篇文章吧。

一、網絡通信解決的問題

不同機器,不同程序之間的數據交換

二、計算機網絡的概念

計算機網課是指將地理位置不同的具有獨立功能的多臺計算機及外部設備通過通信線路連接起來,在網絡操作系統,網絡管理軟件及網絡通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。

三、IP

  • ip地址:InetAddress

  • 通過ip地址可以唯一定位一臺網絡上的計算機

  • 127.0.0.1/0.0.0.0 本機localhost,本機,自己的ip都是這個

  • ip地址分類:IPV4/IPV6

  • IPV4 127.0.0.1,4個字節組,32bit,40億已用盡。

  • IPV6 128位。8個無符號整數,如:

2001:0bb2:aaaa:0015:0000:0000:1aaa:1312
  • 局域網中的IP地址:同一個網絡中其他機器可以使用這個IP訪問你的機器

  • 同一個區域多臺計算機構成局域網->多個局域網構成城域網->多個城域網構成廣域網

四、域名

域名如:www.baidu.com

因為ip地址不好記憶,且長期更換,所以由域名來代替ip地址方便記憶

DNS服務器

DNS(Domain Name System,域名系統),因特網上作為域名和IP地址互相映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串

五、端口

端口表示計算機上的一個程序或進程;

不同的進程有不同的端口號,用來區分軟件

單個協議下端口號不能沖突

端口分離

公有端口0-1023

  • HTTP:80

  • HTTPS:43

  • FTP:21

  • Telent:23

程序注冊端口:1024-49141,分配用戶或者程序

  • Tomcat:8080

  • MySQL:3306

  • Oracle:1521

動態、私有:49152-65535

端口常用指令

netstat -ano #查看所有的端口
netstat -ano|"5900" #查看指定的端口
tasklist|findstr "8986" #查看指定端口的進程

六、利用telnet完成簡單的網絡通信

雙端通信 C/S架構,一個為客戶端,一個為服務端

Socket為Java中包裝TCP連接的一個對象

代碼如下

package com.lding.net;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @program: Net
 * @description: Telnet實現信息傳輸
 * @author: 王丁
 * @date: 2021-09-15 22:45
 **/

public class TelnetServer {
    public static void main(String[] args) throws IOException {
        //創建一個Socket,Socket包裝tcp連接
        //指定端口
        //端口:65536 0-1024端口盡量不要使用避免沖突
        ServerSocket ssc=new ServerSocket(9999);
        //監聽客戶端的Socket連接
        System.out.println("服務端開啟:ip:"+ssc.getInetAddress().getHostAddress()+"端口號:"+ssc.getLocalSocketAddress());
        System.out.println("正在等待有緣人......");
        //阻塞監聽,直到有客戶端連接上來
        Socket socketClient = ssc.accept();
        System.out.println("客戶端已連接:"+socketClient.getInetAddress());
        System.out.println("客戶端端口"+socketClient.getPort());
        //傳輸數據 IO流 字節流 字符流
        //服務端發送給客戶端消息:從客戶端的Socket獲取一個輸出流,向這個輸出流中寫入數據作為消息內容
        OutputStream output =socketClient.getOutputStream();
        output.write(97);
        output.write("Hello,Client!!!".getBytes());
        //服務端從客戶端接收消息:從客戶端的Socket獲取一個輸入流,從這個輸入流中讀數據
        InputStream input=socketClient.getInputStream();
        while(true){
            int readnum=input.read();
            System.out.println((char)readnum);
            output.write(("to_:"+(char)readnum).getBytes());
        }

    }
}

運行過程:

服務端運行后一直等待連接,因為accept方法是一種阻塞監聽

java如何實現網絡通信項目

使用telnet連接端口

命令格式:telnet+空格+ip地址+端口號

java如何實現網絡通信項目

連接成功后,阻塞結束

java如何實現網絡通信項目

java如何實現網絡通信項目

java如何實現網絡通信項目

使用telnet發送的數據在idea運行端口可以實時收到,實現了客戶端發送給數據到服務端,同時服務端也能把接收到的數據傳回去

以上是“java如何實現網絡通信項目”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女