URLDemo.java
public class URLDemo {
public static void main(String[] args) throws MalformedURLException {
URL url = new URL("https://www.baidu.com/s?wd=java");
System.out.println("URL为:"+url.toString());
System.out.println("协议为:"+url.getProtocol());
System.out.println("验证信息:"+url.getAuthority());
System.out.println("文件名及请求参数:"+url.getFile());
System.out.println("主机名:"+url.getHost());
System.out.println("路径:"+url.getPath());
System.out.println("端口:"+url.getPort());
System.out.println("默认端口:"+url.getDefaultPort());
System.out.println("请求参数:"+url.getQuery());
System.out.println("定位位置:"+url.getRef());
}
}
URLConnDemo.java
public class URLConnDemo {
public static void main(String[] args) throws IOException {
URL url = new URL("http://www.baidu.com");
URLConnection urlConnection = url.openConnection();
HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;
InputStreamReader inputStreamReader = new InputStreamReader(httpURLConnection.getInputStream());
BufferedReader in = new BufferedReader(inputStreamReader);
String urlString = "";
String current;
while ((current = in.readLine()) != null){
urlString += current + "\n";
}
System.out.println(urlString);
}
}
TCP服务端.java
public class TCP服务端 {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("开始进行网络适配。。。");
//创建一个服务端的网络套接字,端口是9999
ServerSocket ss = new ServerSocket(9999);
System.out.println("正在进行网络适配。。。。");
Socket s = ss.accept();//等待接收
OutputStream outputStream = s.getOutputStream();
InputStream inputStream = s.getInputStream();
new TCP输入(outputStream,scanner).start();
new TCP读取(inputStream,"客户端:").start();
/*while(true){
String s1 = scanner.next();
outputStream.write(s1.getBytes());
if (s1.equals("exit")){//当结束时
outputStream.close();
}
System.out.println("客户端:");
if (inputStream!=null){
byte[] bytes = new byte[1024];
int len = inputStream.read(bytes);
String s2 = new String(bytes,0,len);
System.out.println(s2);
}
if (outputStream==null){
inputStream.close();
}
}*/
}
}
TCP客户端.java
public class TCP客户端 {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
//产生一个客户端的套接字
Socket s = new Socket("192.168.43.42",9999);//执行了相当于我向你发送请求了
OutputStream outputStream = s.getOutputStream();
InputStream inputStream = s.getInputStream();
new TCP输入(outputStream,scanner).start();
new TCP读取(inputStream,"服务端:").start();
/*while (true){
String s1 = scanner.next();
outputStream.write(s1.getBytes());
outputStream.flush();
if (s1.equals("exit")){
outputStream.close();
}
byte[] bytes = new byte[1024];
if(inputStream!=null){
int len = inputStream.read(bytes);
String s2 = new String(bytes,0,len);
System.out.println(s2);
}
if (outputStream==null){
inputStream.close();
}
}*/
}
}
/*
BIO:Blocking IO(阻塞式IO)
*/
TCP读取.java
//只负责读取
public class TCP读取 extends Thread {
private InputStream in;
private String type;
public TCP读取(InputStream in,String type){
this.in = in;
this.type = type;
}
@Override
public void run() {
while (true){
try{
byte[] bytes = new byte[1024];
int len = in.read(bytes);
String str = new String(bytes,0,len);
System.out.println(type+":"+str);
if (str.equals("exit")){
break;
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
TCP输入.java
//只负责输入
public class TCP输入 extends Thread{
private OutputStream outputStream;
private Scanner scanner;
public TCP输入(OutputStream outputStream,Scanner scanner) {
this.outputStream = outputStream;
this.scanner = scanner;
}
@Override
public void run() {
String s = null;
while (true){
s = scanner.next();
try {
outputStream.write(s.getBytes());
outputStream.flush();
if (s.equals("exit")){
break;
}
} catch (IOException e) {
e.printStackTrace();
}
}
try{
outputStream.close();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
UDP服务端.java
public class UDP服务端 {
public static void main(String[] args) throws IOException {
//1.创建服务器端DatagramSocket,指定端口
DatagramSocket socket = new DatagramSocket(8888);
//2.创建数据报,用于接收客户端发送的数据
byte[] bytes = new byte[1024];
DatagramPacket packet = new DatagramPacket(bytes,bytes.length);
//接收客户端发送的数据
System.out.println("***服务器已经启动,等待客户端发送数据");
socket.receive(packet);//此方法在接收到数据报之前会一直阻塞
//4.读取数据
String info = new String(bytes,0,packet.getLength());
System.out.println("我是服务器,客户端说:"+info);
}
}
UDP客户端.java
public class UDP客户端 {
public static void main(String[] args) throws IOException {
//1.定义服务器的地址、端口号、数据
InetAddress address = InetAddress.getByName("localhost");
DatagramSocket socket = new DatagramSocket();
byte[] bytes = "666".getBytes();
DatagramPacket packet = new DatagramPacket(bytes,bytes.length,address,8888);
socket.send(packet);
//3.创建DatagramSocket对象
/*DatagramSocket socket = new DatagramSocket();
socket.receive(packet);
//4.读取数据
String info = new String(bytes,0,packet.getLength());
System.out.println("我是客户端,服务端说:"+info);*/
}
}