java網(wǎng)絡(luò)編程內(nèi)容-創(chuàng)新互聯(lián)

Java 網(wǎng)絡(luò)編程:
 1、URL、URLConnection、Socket

 2、IP:Internet Protocol,用32位長(zhǎng)度(4個(gè)字節(jié))的二進(jìn)制數(shù)據(jù)。

 3、IP地址分為五類
 A類 政府機(jī)構(gòu)         1.0.0.1 --- 126.255.255.254
 B類 中等規(guī)模的公司   128.0.0.1 --- 191.255.255.254
 C類 任何人           192.0.0.1 --- 223.255.255.254
 D類 組播             224.0.0.1 --- 239.255.255.254
 E類 實(shí)驗(yàn)用           240.0.0.1 --- 255.255.255.255
 127.0.0.1或Localhost表示本機(jī)

 4、java中InetAddress 類表示IP地址,用于實(shí)現(xiàn)主機(jī)名和IP地址之間的轉(zhuǎn)換。InetAddress類描述了IP地址,并通過Inet4Address和Inet6Address來實(shí)現(xiàn)。
 5、常用方法:
 通過靜態(tài)工廠方法定義對(duì)象。
 static InetAddress getLocalHost() 獲得本地主機(jī)的InetAddress對(duì)象
 static InetAddress getByName(String host) 獲得host指定的InetAddress對(duì)象。host可以是主機(jī)名、IP、DNS域名
 String getHostAddress() 以帶圓點(diǎn)的字符串形式獲取IP地址。
 String getHostName() 獲取主機(jī)名字

 6、TCP/IP層次結(jié)構(gòu)
 應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層
 IP:網(wǎng)絡(luò)層
 TCP:傳輸層
 UDP:傳輸層
 HTTP:應(yīng)用層
 FTP:應(yīng)用層
 URL:Universal Resource Locator統(tǒng)一資源定位符號(hào)。
 由如下5部分組成:
 <傳輸協(xié)議>://<主機(jī)名>:<端口>/<文件名>#<引用>
 傳輸協(xié)議(protocol):有HTTP、FTP、File等
 主機(jī)名(hostname):指定資源所在的主機(jī)名。可以是IP、主機(jī)名或域名
 端口號(hào)(port):用來區(qū)分一個(gè)計(jì)算機(jī)中提供的不同服務(wù),如web服務(wù)、FTP服務(wù),每一個(gè)服務(wù)都用一個(gè)端口號(hào)。0 ~ 65535, 端口省略時(shí),網(wǎng)站默認(rèn)是80。 0~1023 是系統(tǒng)保留的端口號(hào),所以盡量使用1024以上的。
 文件名(filename):包括該文件的完整路徑。 默認(rèn)的文件名是index.html
 引用(regerence):對(duì)資源內(nèi)的某個(gè)引用,如http://www.google.com/index.html#chapter1.ppt

 7、URL 類
 URL url = new URL("http://www.baidu.com");

 public String getProtocol() URL 協(xié)議
 public String getHost() URL 的主機(jī)名
 public int getPort() URL 的端口
 public String getFile() URL的文件名
 public String getContent() 傳輸協(xié)議
 InputStream openStream()  打開該URL的輸入流
 public String getPath  獲取該URL的路徑
 URLConnection openConnection() 打開由該URL 表示的位置的連接
 void set(string protocol,string host,int port,string file,string ref) 設(shè)置該URL的各域的值。

 8、使用步驟:
 1、創(chuàng)建URL對(duì)象
 2、使用URL 對(duì)象的openStream() 方法,返回一個(gè)InputStream
 3、從InputStream讀入即可。

 9、URLConnection 表示應(yīng)用程序和URL所標(biāo)識(shí)的資源之間的通信連接,它是一個(gè)抽象類
 url.openConnection()

 void connect()
 Object getContent() 獲取該URL的內(nèi)容
 int getContentLength() 獲取響應(yīng)數(shù)據(jù)的內(nèi)容長(zhǎng)度
 String getContentType() 獲取響應(yīng)數(shù)據(jù)的內(nèi)容類型。
 long getDate() 獲取響應(yīng)數(shù)據(jù)的創(chuàng)建時(shí)間
 long getExpiration() 獲取響應(yīng)數(shù)據(jù)的終止時(shí)間
 getInputStream()獲取該連接的輸入流
 getLastModified() 獲取響應(yīng)數(shù)據(jù)的最后修改時(shí)間
 getOutputStream 獲取該連接的輸出流

 public class TestNet {

創(chuàng)新互聯(lián)公司專注于襄州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供襄州營(yíng)銷型網(wǎng)站建設(shè),襄州網(wǎng)站制作、襄州網(wǎng)頁(yè)設(shè)計(jì)、襄州網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造襄州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供襄州網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

 public static void main(String[] args) {

  try {
   int c;
   URL url = new URL("http://skynet.skhynix-cq.com.cn/plusWare/Main.aspx/");
   URLConnection urlConnection = url.openConnection();

   System.out.println("the date is:" + new Date(urlConnection.getDate()));

   System.out.println("content-type:" + urlConnection.getContentType());

   InputStream inputStream = urlConnection.getInputStream();

   while((c=inputStream.read())!=-1){
    System.out.print((char)c);

   }

   inputStream.close();

  } catch (MalformedURLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 }

}

 10、套接字(socket)
 套接字是TCP/IP協(xié)議的編程接口,一個(gè)Socket 由一個(gè)IP地址和一個(gè)端口號(hào)唯一確定。網(wǎng)絡(luò)上運(yùn)行在兩個(gè)不同主機(jī)的進(jìn)程間進(jìn)行雙向通信的端點(diǎn),用于建立兩個(gè)不同應(yīng)用程序之間通過網(wǎng)絡(luò)進(jìn)行通信的信道。
 位于不同主機(jī)的應(yīng)用進(jìn)程之間要在網(wǎng)絡(luò)環(huán)境下進(jìn)行通信,必須要在網(wǎng)絡(luò)的每一段都要建立一個(gè)套接字。

 數(shù)據(jù)流套接字(Stream Socket) 有連接、可靠、雙向、持續(xù)、點(diǎn)對(duì)點(diǎn), 速度慢 代表是TCP

 數(shù)據(jù)包套接字(Datagram Socket)無連接。代表是UDP

 11、Socket 類
 用構(gòu)造函數(shù)創(chuàng)建一個(gè)客戶端套接字對(duì)象。

 close() 關(guān)閉套接字連接
 InetAddress getInetAddress() 獲取當(dāng)前連接的遠(yuǎn)程主機(jī)的Internet地址
 InputStream getInputStream() 獲取Socket對(duì)應(yīng)的輸入流
 InetAddress getLocalAddress() 獲取本地主機(jī)的Internet地址
 int getLocalPort()  獲取本地連接的端口號(hào)
 OutputStream getOutputStream() 獲取該Socket的輸出流
 int getPort()           獲取遠(yuǎn)程主機(jī)的端口號(hào)
 void shutdownInput()      關(guān)閉輸入流
 void shutdownOutput()

 12、ServerSocket 類
 用在服務(wù)器端,用來監(jiān)聽所有來自指定端口的連接,并未每個(gè)新的連接創(chuàng)建一個(gè)Socket對(duì)象。
 ServerSocket(int port) 創(chuàng)建一個(gè)連接socket
 ServerSocket(int port ,int backlog):創(chuàng)建一個(gè)監(jiān)聽socket
 ServerSocket(int port, int backlog,InetAddress bindAddr) 監(jiān)聽socket

 Socket accept() 接受連接并返回一個(gè)socket對(duì)象。
 void close()
 InetAddress getInetAddress() 獲取該服務(wù)器Socket 所綁定的地址
 int getLocalPort() 獲取該服務(wù)器Socket所偵聽的端口號(hào)
 int getSoTimeout() 獲取連接的超時(shí)數(shù)
 void setSoTimeout(int timeout)表示 ServerSocket的accept()方法等待客戶連接的超時(shí)時(shí)間。如果參數(shù)值未0,表示永遠(yuǎn)不會(huì)超時(shí),進(jìn)入阻塞狀態(tài)。

 13、Socket通信:
 服務(wù)器端構(gòu)造一個(gè)ServerSocket對(duì)象,在制定端口上進(jìn)行監(jiān)聽,這時(shí),服務(wù)器的線程處于等待狀態(tài)。
 然后Client端構(gòu)造Socket類對(duì)象,與服務(wù)器上的指定端口進(jìn)行連接。服務(wù)器接收到連接請(qǐng)求后建立連接。通信依靠輸入輸出流進(jìn)行。

 服務(wù)端: ServerSocket 對(duì)象 -- accept()方法
 客戶端:socket 對(duì)象。請(qǐng)求連接
 Socket類 的getInputStream 和getOutputStream
 通信完成后close

 public class TestNet {

 public static void main(String[] args) throws Exception{

  ServerSocket server = null;

  Socket pair = null;
  PrintStream outPrintStream = null;

  server = new ServerSocket(2588);

  System.out.println("服務(wù)器運(yùn)行,等待客戶端連接");

  pair = server.accept(); // 等待連接

  String string = "hello network!";

  outPrintStream = new PrintStream(pair.getOutputStream());

  outPrintStream.println(string);

  pair.close();

  server.close();

  }
 }

 // Client
 public class Client {

 public static void main(String[] args) throws Exception {
  Socket client = null;

  client = new Socket("localhost",2588); // 新建一個(gè)Socket,并進(jìn)行連接

  BufferedReader buf = null;
  buf = new BufferedReader(new InputStreamReader(client.getInputStream()));

  String str = buf.readLine();

  System.out.println("服務(wù)器端輸出內(nèi)容:" + str);

  buf.close();
  client.close();

 }
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享題目:java網(wǎng)絡(luò)編程內(nèi)容-創(chuàng)新互聯(lián)
文章來源:http://www.muchs.cn/article28/dsoejp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、電子商務(wù)、小程序開發(fā)、外貿(mào)網(wǎng)站建設(shè)、用戶體驗(yàn)、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)