很多其它内容欢迎訪问个人站点   http://icodeyou.com 前几天利用Socket实现了用java语言搭建webserver,全程下来应该会对Socket这个东西已经使用的很熟悉了.尽管抽象,可是使用过一次之后就会感受到它在网络通信上的作用是多么的强大.正好,今天就继续用Socket来练习使用下面Smtp协议发送一封简单的电子邮件.今天的故事呢,是我要约我女神出去吃饭啦啦啦~~~所以,面对Smtp.仅仅许成功,不许失败. 全局假定我的邮箱为cnsmtp01@163.com   女神…
一.Unix IO 与 IPC Unix IO:Open-Read or Write-Close IPC:open socket - receive and send to socket - close socket IPC 全称是 InterProcess Communication. 当消息发出后,消息进入 SendQ队列 一直等待 sending socket 处理,才真正发出(一直等待是阻塞的).当消息到达时,消息进入RecvQ队列 一直等待 receiving socket 处理(同前…
目录 开篇必知必会 一.多线程技术 二.实现多线程接收 1.单线程版本 2.多线程版本 三.多线程与进程的关系 四.客户端界面完整代码 五.多线程通信对比 最后 开篇必知必会 在前一篇<Java:基于TCP协议网络socket编程(实现C/S通信) >,实际存在一个问题,如果服务器端在建立连接后发送多条信息给客户端,客户端是无法全部接收的,原因在于客户端为单线程,只接受了第一条信息,剩余信息阻塞等待下一次发送.所以,这造成了客户端无法处理消息队列,每次只接收并输出一条服务器信息,出现信息不同步…
smtp 服务器:smtp.gmail.com 使用ssl的端口:465 用户名:username@gmail.com 密码:password** 基本配置没有问题,关键在于Google对安全性要求非常高,我们自己使用java mail来发送邮件,可能不符合某些安全性规范,导致Google拒绝提供服务,表现为登录不上去,自然发送邮件也就失败了. 解决方法就是开启某个开关就行了: 我的账户--->登录与安全--->关联的应用和网站--->允许不够安全的应用 也就是启用上面的允许不够安全的应…
沉淀再出发:再谈java的多线程机制 一.前言 自从我们学习了操作系统之后,对于其中的线程和进程就有了非常深刻的理解,但是,我们可能在C,C++语言之中尝试过这些机制,并且做过相应的实验,但是对于java的多线程机制以及其中延伸出来的很多概念和相应的实现方式一直都是模棱两可的,虽然后来在面试的时候可能恶补了一些这方面的知识,但是也只是当时记住了,或者了解了一些,等到以后就会变得越来越淡忘了,比如线程的实现方式有两三种,线程池的概念,线程的基本生命周期等等,以及关于线程之间的多并发引起的资源的抢占…
目录 Java继承之再谈构造器 初始化基类 默认构造器 带参数的构造器 子类调用父类构造器 Java继承之再谈构造器 初始化基类 前面提到,继承是子类对父类的拓展.<Thinking in Java>中提到下面一段话: 当创建一个导出类的对象时,该对象包含了一个基类的子对象.这个子对象与你用基类直接创建的对象是一样的.二者区别在于,后者来自于外部,而基类的子对象被包装在导出类的对象内部. 我们在创建子类对象时,调用了父类的构造器,甚至父类的父类构造器.我们知道,构造器用于创建对象,那么突然产生…
在回顾js数据结构,写<再谈js对象数据结构底层实现原理-object array map set>系列的时候,在来整理下java的数据结构. java把内存分两种:一种是栈内存,另一种是堆内存 基本类型在栈区分配空间,java的基本数据类型共有8种,即int,short,long,byte,float,double,boolean,char(注意,并没有String的基本类型 ).由于大小可知,生存期可知(这些字面值定义在某个程序块里面,程序块退出后,字段值就消失了),出于追求速度的原因,就…
1.3再谈方法 1.3.1 什么是方法(函数) ①方法是类或对象行为特征的抽象,也称为函数. ②Java里的方法不能独立存在,所有的方法必须定义在类里. 修饰符 返回值类型 方法名(参数类型 形参1,参数类型 形参2,….){ 程序代码 return 返回值; } 形式参数:在方法被调用时用于接收外部传入的数据的变量. 参数类型:就是该形式参数的数据类型. 返回值:方法在执行完毕后返还给调用它的程序的数据. 返回值类型:方法要返回的结果的数据类型. 实参:调用方法时实际传给函数形式参数的数据.…
在Java中,为了组织代码的方便,可以将功能相似的类放到一个文件夹内,这个文件夹,就叫做包. 包不但可以包含类,还可以包含接口和其他的包. 目录以"\"来表示层级关系,例如 E:\Java\workspace\Demo\bin\p1\p2\Test.java. 包以"."来表示层级关系,例如 p1.p2.Test 表示的目录为 \p1\p2\Test.class. 如何实现包 通过 package 关键字可以声明一个包,例如:    package p1.p2;必须…
在Java中,为了组织代码的方便,可以将功能相似的类放到一个文件夹内,这个文件夹,就叫做包. 包不但可以包含类,还可以包含接口和其他的包. 目录以"\"来表示层级关系,例如 E:\Java\workspace\Demo\bin\p1\p2\Test.java. 包以"."来表示层级关系,例如 p1.p2.Test 表示的目录为 \p1\p2\Test.class. 如何实现包 通过 package 关键字可以声明一个包,例如: package p1.p2; 必须将…