中山网站制作系统,创意视差wordpress主题,做托福的网站,平台销售模式有哪些目录
一、Java网络API
1、InetAddress类
2、URL类
3、URLConnection类
4、URLDecoder类和URLEncoder类
二、基于TCP的网络编程
1、Socket类
2、ServerSocket类
三、网络通信过程 一、Java网络API Java中有关网络方面的功能都定义在java.net中。
1、InetAddress类 Jav…目录
一、Java网络API
1、InetAddress类
2、URL类
3、URLConnection类
4、URLDecoder类和URLEncoder类
二、基于TCP的网络编程
1、Socket类
2、ServerSocket类
三、网络通信过程 一、Java网络API Java中有关网络方面的功能都定义在java.net中。
1、InetAddress类 Java中使用InetAddress类封装IP地址或域名InetAddress类没有构造方法因此不能创建对象一般采用下面的定义方法 InetAddress localipInetAddress.getLocalHost(); 利用类内方法 在使用调用网络api时注意要添加异常机制异常对象使用IOException大多数异常都继承于输入输出流异常。 InetAddress常用方法 调用上述方法的实例 注意对于特定域名以及特定ip的不同初始化的方法byte要小写。
import java.io.IOException;
import java.net.*;
public class api {public static void main(String[] args){try{InetAddress localipInetAddress.getLocalHost();System.out.println(localip.getHostName()); //主机名字System.out.println(localip.getCanonicalHostName()); //全限定域名System.out.println(localip.getHostAddress()); //主机对应ipSystem.out.println(localip.toString()); //将ip和名字结合的show方法System.out.println(localip.isReachable(5000)); //ping一下ipSystem.out.println(-----------------------);InetAddress baiduInetAddress.getByName(www.baidu.com);System.out.println(baidu.toString());System.out.println(baidu.isReachable(5000));System.out.println(-----------------------);InetAddress orientInetAddress.getByAddress(new byte[]{127,0,0,1}); //注意这种写法System.out.println(orient.toString());System.out.println(orient.isReachable(5000));}catch(IOException e){e.printStackTrace();}}
}
2、URL类 URL表示互联网某一资源的地址由协议名、主机、端口和资源四个部分组成语法如下 protocol://host:port/resourceName Java将URL封装成URL类通过URL对象调用方法可以获取URL的内部信息就是拆解URL而不是去访问URL。URL在jdk 20版本已经被删掉了 3、URLConnection类 URLConnection代表与URL指定的数据源的动态连接允许使用POST或PUT和其他HTTP请求方法将数据送回服务器。 URLConnection常用方法 下面代码实例为访问网站并将网站信息写在txt文件 其中先运用IO的知识通过File类确定是否存在保存文件1.txt若没有则生成该文件。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;public class url {public static void main(String[] args){//不存在文件则创建一个文件File filenew File(src/net/1.txt);try{file.createNewFile();}catch(IOException e){e.printStackTrace();}//访问网址并写入文件FileWriter fwnull;try{URL urlnew URL(https://blog.csdn.net/m0_60177079/article/details/135175601?spm1001.2014.3001.5501);URLConnection urlcurl.openConnection();urlc.setRequestProperty(Char, UTF-8);BufferedReader brnew BufferedReader(new InputStreamReader(urlc.getInputStream()));String input;fwnew FileWriter(src/net/1.txt);while((inputbr.readLine())!null){fw.write(input);}}catch(IOException E){E.printStackTrace();}finally{try{fw.close();}catch(IOException e){e.printStackTrace();}}}
}4、URLDecoder类和URLEncoder类 存在非西欧字符串时系统会将字符串转换成application/x-www-form-urlencoded MIME字符串相对比的为普通字符串那么在这两者之间转换的方法就是URLDecoder类中的decode方法和URLEncoder类中的encode方法。 二、基于TCP的网络编程 Java对于TCP网络通信提供了封装使用Socket对象封装了通信两端的通信端口Socket允许应用程序将网络连接当成一个IO流。 Java.net中包含使用的两种SocketServerSocket服务器套接字和Socket客户端套接字
1、Socket类 通过Socket类来连接服务器当前文件作为客户端构造方法如下
Socket socketnew Socket(127.0.0.1,28888); Socket常用方法 客户端通信具体步骤
1创建一个Socket对象
2调用getOutputStream()方法往Socket中写数据一般使用new PrintStream(socket.getOutputStream())并调用PrintStream的println方法输出到服务器端。
3调用getInputStream()方法,从Socket中读数据一般用new BufferedReader(new InputStreamReader(socket.getInputStream()))通过调用BufferedReader的readline方法返回服务器的信息输出到客户端。
4客户端与服务器根据协议进行交互直到关闭连接期间可以对于PrintStream和BufferedReader所创建的ps和br对象进行flush操作清除缓冲区。
5关闭客户端的Socket
2、ServerSocket类 ServerSocket是服务器套接字运行在服务器端通过指定端口主动监听来自客户端的Socket连接。 创建ServerSocket对象
try{servernew ServerSocket(28888);
}
catch(IOException e)
{e.printStackTrace();
} 服务器端需要继承于线程类并在构造方法中通过start方法运行线程并重新run方法。 ServerSocket常用方法 根据ServerSocket进行网络通信的具体步骤
1建立ServerSocket对象
2调用ServerSocket对象的accept方法接收客户端发送的Socket对象
3调用getInputStream()方法,从Socket中读数据一般用new BufferedReader(new InputStreamReader(socket.getInputStream()))通过调用BufferedReader的readline方法返回服务器的信息输出到服务器端。
4调用getOutputStream()方法往Socket中写数据一般使用new PrintStream(socket.getOutputStream())并调用PrintStream的println方法输出到客户端。
5服务器与客户端根据一定的协议交互知道关闭连接
6关闭服务器端的Socket
7回到第二步重新监听下一次客户端发送的Socket请求连接。
三、网络通信过程 使用Socket进行基于C/S架构的网络通信程序设计过程
1服务器端通过某个端口监听是否有客户端发送Socket连接请求
2客户端向服务端发出一个Socket连接请求
3服务器端调用accept()接收客户端Socket并建立连接
4通过调用Socket对象的getInputStream/getOutputStream方法进行IO流操作服务器与客户端进行信息交互
5关闭服务器端和客户端的Sokcet C/S过程代码 服务器端
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;public class Server extends Thread{ServerSocket server;int num0;public Server(){ //构造ServerSocket服务器端套接字类try{servernew ServerSocket(28888);}catch(IOException e){e.printStackTrace();}this.start(); //线程启动System.out.println(Server start!);}public void run(){while(this.isAlive()) //是否存在线程{BufferedReader brnull;PrintStream psnull;try{Socket socketserver.accept(); //监听brnew BufferedReader(new InputStreamReader(socket.getInputStream())); //向客户端输入String linebr.readLine();System.out.println(line);psnew PrintStream(socket.getOutputStream()); //输出到服务器端ps.println(你是第(num)个用户);ps.flush();br.close();ps.close();}catch(IOException e){e.printStackTrace();} }}public static void main(String[] args){new Server(); //启动一个Server类}
} 客户端
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;public class Cilent {public static void main(String[] args){BufferedReader brnull;PrintStream psnull;try{Socket socketnew Socket(127.0.0.1,28888); //本机28888端口构造Socket套接字类psnew PrintStream(socket.getOutputStream()); //输出到客户端ps.println(hello world!);ps.flush();brnew BufferedReader(new InputStreamReader(socket.getInputStream())); //输入到服务器端String linebr.readLine();System.out.println(From Server:);System.out.println(line);br.close();ps.close();}catch(IOException e){e.printStackTrace();}}}参考书籍《Java 8 基础应用与开发》QST青软实训编