1接收Email协议类型 接收Email:收件人通过MUA软件把邮件从MDA抓取到本地计算机的过程. 1.1 POP3 从MUA到MDA使用最广泛的是协议是POP3 Post Office Protocol version 3,建立在tcp之上的协议 标准端口110 整个会话加密,加密端口995 1.2 IMAP 与POP3的区别:IMAP在本地的所有操作都会自动同步到服务器上,允许用户自己创建文件夹 Internet Mail Access Protocol 标准端口143 加密端口993 2…
1.邮件发送 1.1传统邮件发送: 传统的邮件是通过邮局投递,从一个邮局到另一个邮局,最终到达用户的邮箱. 1.2电子邮件发送: 与传统邮件类似,它是从用户电脑的邮件软件(如outlook)发送到邮件服务器上,然后经过若干个邮件服务器的中转,到达对方邮件服务器上,收件方就可以用软件或浏览器来接收邮件. MUA(邮件软件,Mail User Agent)-->MTA(邮件服务器,Mail Transfer Agent)-->MTA-->MDA(邮件投递代理,Mail Delivery Ag…
1. Socket 在开发网络应用程序的时候,会遇到Socket这个概念. Socket是一个抽象概念,一个应用程序通过一个Socket来建立一个远程连接,而Socket内部通过TCP/IP协议把数据传输到网络. Socket/TCP/部分IP都是由操作系统提供的.不同的编程语言只是提供了对操作系统调用的加单封装,例如Java提供的几个Socket相关的类就封装了操作系统提供的接口. 为什么需要Socket? 因为仅仅通过IP地址进行通信还不够,同一台计算机同一时间会运行多个网络程序.当计算机收…
1. UDP编程: 不需要建立连接 可以直接发送和接收数据 1.1 客户端 DatagramSocket sock = new DatagramSocket(){} sock.connect(addr,9090);//并不建立连接 //接收 byte[] data=...; DatagramPacket packet = new DatagramPacket(data, data.length); sock.send(packet); //发送 byte[] buffer = new byte[…
TCP多线程编程 一个ServerSocket可以和多个客户端同时建立连接,所以一个Server可以同时与多个客户端建立好的Socket进行双向通信. 因此服务器端,当我们打开一个Socket以后,通常使用一个无限for循环,在这个for循环内部,每次调用accept方法,返回一个与远程客户新建的Socket连接,紧接着启动一个新的线程,来处理这个连接. ServerSocket ss = new ServerSocket(port); for( ; ; ){ Socket sock = ss.…
1.RMI远程调用: Remote Method Invocation 目的:把一个接口方法暴露给远程 示例: 定义一个接口Clock,它有一个方法能够获取当前的时间,并编写一个实现类,来实现这个接口. RMI远程调用示例: public interface Clock{ //获取当前时间 //LocalDateTime currentTime(); } public class ClockImpl implements Clock{ public LocalDateTime currentTi…
1.计算机网络 1.1 什么是计算机网络? 两台或更多计算机组成的网络 同一网络内的任意2台计算机都可以直接通信 所有计算机必须遵循同一种网络协议 1.2 什么是互联网 互联网是网络的网络 互联网采用TCP/IP协议 * TCP/IP协议泛指互联网协议 * 其中最重要的2个协议是TCP协议和IP协议 2. IP地址 IP地址用于唯一标识一个网络接口(Network Interface) * IPv4采用32位地址,类似101.202.99.12 * IPv6采用128位地址,类似2001:0DA…
1.HTTP协议: Hyper Text Transfer Protocol:超文本传输协议 基于TCP协议之上的请求/响应协议 目前使用最广泛的高级协议 * 使用浏览器浏览网页和服务器交互使用的就是HTTP协议 * 手机应用上绝大多数程序与服务器之间交互数据使用的也是HTTP协议. HTTP协议是一个纯文本协议 HTTP是一个请求/响应协议.浏览器发送一个请求,服务器收到以后,然后发送响应. HTTP 1.0: 每次请求都会创建一个新的HTTP连接,浏览器在请求一个网页之后,往往还是多次请求图…
break跳出循环 int sum=0; for(int i=1; ;i++) { sum =sum + i; if(i == 100) { break; } } System.out.println(sum);//5050 在多层嵌套的循环体里,break语句总是跳出最近的一层循环. int sum=0; for(int i = 1;i <= 100 ;i++) { for(int j = 1; ;j++) { sum = sum + j; if (j >= i) { break; } }…
do-while循环 do-while先执行循环,再判断条件. 条件满足时继续循环:条件不满足时退出:至少循环1次 int sum =0; int n = 1; do{ sum = sum + n; n++; }while (n<10); System.out.println(n); System.out.println(sum);…