package com.oracle.网络编程;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* @Author:WangQuan
* @Description
* @Date:Created in 1:14 下午 2021/1/8
* @Modified By:
**/
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
System.out.println("客户端已启动");
Socket socket = new Socket(InetAddress.getLocalHost(),8888);
//获取了字节流
OutputStream ops = socket.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(ops));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String mySay = null;
do{
mySay = br.readLine();
System.out.println("我说: " + mySay);
bw.write(mySay); //写过去
bw.newLine(); //换行
bw.flush();//刷新
}while(!"bye".equals(mySay));
bw.close();
//关闭套接字
socket.close();
}
}
package com.oracle.网络编程;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* @Author:WangQuan
* @Description
* @Date:Created in 10:28 上午 2021/1/8
* @Modified By:
**/
public class Test {
public static void main(String[] args) throws UnknownHostException {
InetAddress getLocalHost = InetAddress.getLocalHost();
System.out.println(getLocalHost);
String hostName = getLocalHost.getHostName();
System.out.println(hostName);
System.out.println("===================百度======================");
InetAddress byName = InetAddress.getByName("www.baidu.com");
System.out.println(byName.getHostAddress());
System.out.println(byName.getHostName());
InetAddress byName2 = InetAddress.getByName("www.jd.com");
System.out.println(byName2.getHostAddress());
System.out.println(byName2.getHostName());
}
}
package com.oracle.网络编程;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* @Author:WangQuan
* @Description
* @Date:Created in 1:14 下午 2021/1/8
* @Modified By:
**/
public class TestURL {
public static void main(String[] args) throws IOException {
//https://m701.music.126.net/20210108123733/1b70653eb81a2ac96b89aa2b48626907/jdyyaac/obj/w5rDlsOJwrLDjj7CmsOj/5303862076/1be3/a5e4/cd4e/72a1df7a154c1723748cea102683dddf.m4a
URL url = new URL("https://www.youtube.com/21fb74d3-5d45-4d68-829c-a00b2603f24f");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
InputStream ips = conn.getInputStream();
FileOutputStream ops=new FileOutputStream(
new File("/Users/wangquan/Downloads/爬虫/1.mp4"));
int i = 0;
while((i = ips.read())!= -1){
ops.write(i);
}
ips.close();
ops.close();
System.out.println("-------------");
}
}
网络编程的java程序。
网络编程:
什么是网络? 互联网 (公网)----- 局域网(本地) 公司内部人员使用
网络是 将分散在 不同位置的 网络终端, 通过网络介质(网线 - WIFI)
连接起来, 从而达到 网络通讯 和 数据传输的目的;
编程:使用 计算机语言 编写程序 ,来达到 网络通讯和 数据传输的目的
网络编程中 学习 两种结构:
终端 : C/S 客户端 和 服务器
javaWeb: B/S 浏览器 和 服务器
网络基础: 127.0.0.1
ip地址: 作用: 在准确的行为一台计算机的位置 唯一的
192.168.200.128 , 4个字节 32位 0-255 网关 广播地址 253
ipv4: 192.168.200.128 43亿 --- 2011年使用完了
北美 30亿 亚洲 :
支付宝:ipv6: 8个字节 一个字节8位 234 :2334 : 2343 : 23423 : 234: 234234 :23423:234243
ipconfig 命令时查看 window操作系统的 ip 地址
不联网 本地ip为 127.0.0.1
ping 连接指定ip 看 通不通
端口: 应用程序 和 应用程序 如何 连接
端口号 : 0 ~ 65535
0 ~ 1023 已经被使用
1024 ~ 65535
mysql : 3306
tomcat :8080
zookeeper :2181
dubbo: 20880
协议: 传输方式必须 统一
http: 超文本传输协议
https: 加密的
ftp: 文件传输协议
传输层:
TCP/IP: Transfer Control Protocol 传输控制协议
UDP: User Datagram Protocol 用户数据包协议
C/S架构学习:
Client 客户端
Server 服务器
TCP/IP协议的特点:
1.需要建立连接 , 安全, 性能慢
三次握手: 连接
四次挥手: 断开
UDP协议的特点:
2. 不需要建立连接, 不安全, 性能快
java:
Socket: 代表客户端套接字
Socket(InetAddress address, int port);
socket.getOutputStream();
socket.getInputSttream();
ServerSocket: 服务器端套接字 protocol
new ServerSocket(int port);
方法:
Socket socket = accept(); 接收客户端发送的请求
socket.getInputStream();
socket.getOutputStream();
-----------------------------------------------
UDP: User Datagram Protocol 用户数据包协议
每个包最大 64k
1.DatagramPacket 包
构造器: DatagramPacket(byte[] buf, int length, InetAddress address, int port);
2.DatagramSocket:
1)发送数据包
send(DatagramPacket p);
2)接收客户端发送的请求
receive(DatagramPacket p);
---------------------------------------------
URI: 工具类 下载网络资源的
URL : 统一资源定位符 群确定知道我要什么东西
new URL();
URI : 统一资源标识符
ip地址在java中如何表现
java.lang
java.util
java.date
|-- java.sql
java.io
java.util.current.
|-- locks
|-- atomic
java.net