linux系统如何做网站,广东seo网站设计,网站推广工作,api软件大家好#xff0c;我是乐字节小乐#xff0c;上次给大家讲述了Java中的IO流之输出流|乐字节#xff0c;本文将会给大家讲述网络编程。主要内容如下#xff1a;网络 网络分层 IP位置 端口port 网络编程一、 网络 1、概念网络即将不同区域的电脑连接到一起#xff0c; 组成局…大家好我是乐字节小乐上次给大家讲述了Java中的IO流之输出流|乐字节本文将会给大家讲述网络编程。主要内容如下 网络 网络分层 IP位置 端口port 网络编程一、 网络 1、概念网络即将不同区域的电脑连接到一起 组成局域网、城域网或广域网。把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统从而使众多的计算机可以方便地互相传递信息共享硬件、软件、数据信息等资源。2、主要功能• 资源共享• 信息传输与集中处理• 均衡负荷与分布处理3、网络通信协议计算机网络中实现通信必须有一些约定即通信协议对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。4、网络通信接口为了使两个结点之间能进行对话必须在它们之间建立通信工具(即接口)使彼此之间能进行信息交换。接口包括两部分• 硬件装置: 实现结点之间的信息传送• 软件装置: 规定双方进行通信的约定协议二、 网络分层由于结点之间联系很复杂在制定协议时把复杂成份分解成 一些简单的成份再将它们复合起来。最常用的复合方式是层次方式即同层间可以通信、上一层可以调用下一层而与再下一层不发生关系。1、 通信协议的分层2、封装封装从上往下加入相关层的协议控制信息3、拆封拆封:获取数据从下往上去除相关层的协议的控制信息三、 IP位置 IP 是 Internet Protocol 的外语缩写 网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。 在因特网中它是能使连接到网上的所有计算机网络实现相互通信的一套规则规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统只要遵守 IP 协议就可以与因特网互连互通。端口区分数据流向的软件 0-65535 不要使用 1024 以下的端口 每一个协议拥有自己的端口在同一个协议下端口不能重复 FTP:21 HTTP:80四、端口:port端口是虚拟的概念并不是说在主机上真的有若干个端口。通过端口可以在一个主机上运行多个网络应用程序。可以类比为:IP 相当于公司端口相当于公司各部门,URL相当于各部门的人员。五、资源的传输协议TCPTCP(transfer control protocol) 打电话 面向连接、安全、可靠效率低 UDPUDP(UserDatagramProtocol ) 发送短信 非面向连接、不安全、数据可能丢失 、效率高六、网络编程1、InetAddress封装计算机的 ip 地址和 DNS Domain Name System域名系统 ,没有端口。1)、方法InetAddress.getLocalHost();InetAddress.getByName(http://www.163.com);InetAddress.getByName(223.87.1.58)2) 、方法getHostAddress() 返回 ip 地址getHostName() 返回域名|本机为计算机名2、InetSocketAddress包含端口用于 socket 通信的 1) 、获取对象InetSocketAddress(String hostname, int port)InetSocketAddress(InetAddress addr, int port)2) 、方法getAddress() 返回 InetAddress 对象getPort() 返回端口getHostName() 返回域名3 、URL1) 、URI(Uniform resource identifier)统一资源标识符, 用来唯一的标识一个资源。2) 、URL( Uniform Resource Locator)统一资源定位器,它是一种具体的 URI 。统一资源定位符,由 4 部分组成协议 、存放资源的主机域名、资源文件名和端口号。 URL是指向互联网“资源”的指针。资源可以是简单的文件或目录也可以是对更为复杂的对象的引用例如对数据库或搜索引擎的查询。3) 、网络爬虫原理public static void main(String[] args) throws IOException {URL urlnew URL(http://www.baidu.com);//主页 默认资源
//获取资源 网络流 可能会出现乱码1、字节数不够 2、编码解码格式不统一/*InputStream isurl.openStream();byte[]flushnew byte[1024];int len0;while(-1!(lenis.read(flush))){System.out.println(new String(flush,0,len));}is.close();*/BufferedReader brnew BufferedReader(new InputStreamReader(url.openStream(),utf-8));BufferedWriter bwnew BufferedWriter(new OutputStreamWriter(new FileOutputStream(baidu2.html),utf-8));String msgnull;while((msgbr.readLine())!null){//将网络内容下载到本地。然后进行数据分析建立索引这也是搜索引擎的第一步。bw.append(msg);bw.newLine();//新增方法 插入换行符}bw.flush();//强制刷出bw.close();br.close();}4、UDP编程: DatagramSocket DatagramPacketUserDatagramProtocol一种无连接的传输层协议提供面向事务的简单不可靠信息传送服务。其特点为:非面向连接;传输不可靠;数据可能丢失。1)、服务器:①创建服务器 DatagramSocket类 指定端口②准备接收容器 字节数组 封装成DatagramPacket数据包③接收数据④分析数据⑤释放资源2)、客户端:①创建客户端 DatagramSocket类 指定端口②准备数据 字节数组③封装成数据包 需要指定包发送的地址端口 即服务器地与端口④发送数据⑤释放资源5、TCP 编程:ServerSocket Sockettransfer control protocol一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议的点到点的通信 。TCP 三次握手(Three-way Handshake),类似于拨打电话1) 、特点基于 tcp 协议建立稳定连接的点对点的通信;实时、快速、安全性高、占用系统资源多、效率低;“请求-响应”模式a)、客户端:在网络通讯中第一次主动发起通讯的程序被称作客户端(Client)程序b)、服务器:第一次通讯中等待连接的程序被称作服务器端(Server)程序• Socket发送 TCP 消息• ServerSocket创建服务器套接字是一种进程间的数据交换机制。这些进程既可以在同一机器上也可以在通过网络连接的不同机器上。换句话说套接字起到通信端点的作用。单个套接字是一个端点而一对套接字则构成一个双向通信信道使非关联进程可以在本地或通过网络进行数据交换。一旦建立套接字连接数据即可在相同或不同的系统中双向或单向发送直到其中一个端点关闭连接2) 、服务器: ①创建服务器 指定端口②等待客户端连接③分析接收数据3) 、客户端: ①连接服务器: 创建客户端 指定服务器地址 端口②发送数据乐字节原创转载请注明出处。关于网络编程就讲到这里了更多Java干货请继续关注乐字节。