日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java网络编程(一)】IP地址、端口、URL、网络爬虫原理、TCP UDP协议

發布時間:2024/2/28 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java网络编程(一)】IP地址、端口、URL、网络爬虫原理、TCP UDP协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IP地址與域名的獲取

package cn.hanquan.test;import java.net.InetAddress; import java.net.UnknownHostException;/** IP地址*/ public class IPtest {public static void main(String[] args) throws InterruptedException, UnknownHostException {// 獲取本機InetAddress addr = InetAddress.getLocalHost();System.out.println(addr.getHostAddress());// 返回地址System.out.println(addr.getHostName());// 返回計算機名// 根據域名返回地址addr = InetAddress.getByName("www.baidu.com");System.out.println(addr.getHostAddress());System.out.println(addr.getHostName());} }

端口

大小:0-65535(2字節,16位),端口用于區分軟件。

同一個協議下,端口不要沖突。不同的協議下,端口不建議沖突。如果沖突,不好區分。

比如(默認的)http協議就使用了80端口,8080端口是tomcat服務器的,1521是oracle的,3306是mysql的

不用擔心端口不夠用,因為電腦里不會裝那么多軟件(2*65535)

netstat -ano查看端口

InetSocketAddress的使用

package cn.hanquan.test;import java.net.InetSocketAddress; import java.net.UnknownHostException;/** 端口*/ public class IPtest {public static void main(String[] args) throws InterruptedException, UnknownHostException {// 構造方式1InetSocketAddress addr1 = new InetSocketAddress("127.0.0.1", 8080);System.out.println(addr1.getHostName());System.out.println(addr1.getAddress());System.out.println(addr1.getPort());// 構造方式2InetSocketAddress addr2 = new InetSocketAddress("www.hanquanhq.cn", 9000);System.out.println(addr2.getHostName());System.out.println(addr2.getAddress());System.out.println(addr2.getPort());} }

URL


代碼

運行結果

代碼(續)

運行結果


網絡爬蟲

一個簡單的爬蟲

package cn.hanquan.test;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL;/** 網絡爬蟲的原理*/ public class Spidertest {public static void main(String[] args) throws IOException {// 獲取urlURL url = new URL("https://www.jd.com");// 下載資源InputStream is = url.openStream();BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));String line = null;while (null != (line = br.readLine())) {System.out.println(line);}br.close();// ToDo: 分析、處理...} }

有的網頁禁止用這種方式爬取,產生異常

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: https://www.dianping.comat java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1913)at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1509)at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:245)at java.base/java.net.URL.openStream(URL.java:1117)at cn.hanquan.test.Spidertest.main(Spidertest.java:18)

想要爬取這種網頁,我們可以模擬瀏覽器進行操作:
看到User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Mobile Safari/537.36

以下代碼模擬了瀏覽器,可以正常爬取網頁。

package cn.hanquan.test;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;/** 網絡爬蟲的原理+模擬瀏覽器*/ public class Spidertest {public static void main(String[] args) throws IOException {// 獲取urlURL url = new URL("https://www.dianping.com");// 模擬瀏覽器HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 模擬瀏覽器,需要用到http協議conn.setRequestMethod("GET");conn.setRequestProperty("User-Agent","Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Mobile Safari/537.36");// 下載資源BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line = null;while (null != (line = br.readLine())) {System.out.println(line);}br.close();// ToDo: 分析、處理...} }

TCP、UDP協議






使用UDP編程

DatagramPacket

DatagramSocket

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的【Java网络编程(一)】IP地址、端口、URL、网络爬虫原理、TCP UDP协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。