我为什么要学习Java网络编程,在实际的项目开发中,尤其是移动电信领域。很不辛或者是很辛运来到这个行业。之所以这样说是因为我之前做的项目一般的都是CRUD的基本操作,虽然说现在的Java企业架构一般都是面向微服务,诸如Spring Cloud,Spring Boot。或者是一些分布式框架,几乎都是面向服务的架构,服务的提供者,服务的消费者等等。我也是停留在会使用的阶段,虽然我知道分布式框架的底层都存在着Java网络通讯,可是始终不敢去正面的和他交锋,我之所以说不幸之处在于我从来没有去研究这块,辛运的是我不得不研究这块。我的项目的实际开发阶段,需要更多的网络编程。
1 家书抵万金
A要给B写信,那么首先要知道B的地址,然后通过邮局送达。B如果要回信,那么同样的也需要A的地址,也要通过邮局去送达。 在这里我们不关心邮局是如何送达信件的,是骑马也好,或者步行或者坐船等,这些过程或者方式我们是不需要关心的。上述的这种例子就是一个很好的计算机通讯的示例。  下面看一个模拟通讯的实例package com.asiaInfo.caozg.ch_01;
import java.io.BufferedReader;
import java.io.IOError;
import java.io.InputStreamReader;
/**
* @Authgor: gosaint
* @Description:
* @Date Created in 12:35 2018/1/5
* @Modified By:
*/
public class EchoPlayer {
public static String echo(String msg){
return "echo :"+msg;
}
public static void talk() throws IOError{
try {
/**
* 创建字符缓冲流对象,读取字符输入流
*/
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String msg =null;
while((msg=br.readLine())!=null){
System.out.println(echo(msg));
if(msg.equals("bye")){
break;
}
}
}catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
talk();
}
}
调用talk()方法,当我们每输入一次,就会返回echo:xxx.知道输入的字符串和程序中的相等,程序执行完毕。这就像我们请求一次服务器一样,服务器会返回给我们一些数据,直到程序运行的终止