1, 网络爬虫demo
package networkCoding;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class Spider {
public static void main(String[] args) throws IOException {
// 获取url
// URL url= new URL("https://www.jd.com");
// 点评网 不能直接访问需要模拟浏览器访问;
URL url= new URL("https://www.dianping.com");
// 下载资源
// 建立模拟链接
HttpURLConnection connection= (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("User-Agent"," Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36");
// InputStream is =url.openStream();
// BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(is,"UTF-8"));
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
String msg = null;
while(null!=(msg=bufferedReader.readLine())) {
System.out.println(msg);
}
bufferedReader.close();
}
}
2,tcp 和udp
tcp 基于字节流
1,面向连接 ,必须先建立连接;
2,点到点的通信 1to1
3,高可靠性
4,占用系统资源多 ,效率低;
udp: 基于字节流
1, 无连接
2,可以广播方式
3,传输不可靠 ,可能丢失, 不管对方是否准备好 ,也不确认对方是否接收
4,非常简单协 ,开销小
***********************
传输层和应用层使用套接字来建立连接;tcp 和udp就是传输协议;
而socket 编程tcp 和udp 有以下不同
tcp udp
通信需要双方建立连接 双方不需要建立连接
连接有主次之分 双方平等