最近一直在抱怨,靠,现在的工具好难用阿,怎么写程序还是那么困难啊。怎么写个页面各种乱七八糟的方法不能重用阿,之类的。
直到今天看了Java网络编程,我才发现,我们是现在的编程环境已经是天堂了。那我就来说说未被Servlet技术包装之前的网络编程是如何的。
socket是从jdk1.0开始被Java支持的(之前就不清楚了,知道API文档是这么的说)。计算机网络有很多层,在我这里,socket是属于应用层(用TCP/IP协议用应用开发),再底层的我们不讨论。
那么如何在Java中通过Socket来使得两个计算机进行通信了。以下是一个最简单的Socket client的程序:
import java.io.IOException; import java.io.InputStream; import java.net.Socket; import java.util.Scanner; /** * 创建者: Michaelssss * 创建时间: 15-10-23 * 功能名字: */ public class HelloSocket { public static void main(String[] args) throws IOException{ try{ Socket socket = new Socket(args[0],80); InputStream inputStream = socket.getInputStream(); Scanner in = new Scanner(inputStream); socket.setSoTimeout(100000); while(in.hasNextLine()){ String line = in.nextLine(); System.out.println(line); } }catch (IOException e){} } }
这里创建了一个Socket对象,连接到args[0]的主机,主机端口是80。接着打开一个输入流并循环输出。
是不是觉得很多东西同然很陌生了呢?
回想以下平常写Java Web,我们哪里用关心这些事情。
那么Java或者说框架是如何屏蔽掉这些信息呢?
答案是Servlet技术。Servlet技术将Web的一些标准进行了封装,比如post,get方法等等。如果我们要实现一个自己的servlet就是自己完整的实现一遍Http头的解析返回,get,post的方法。再往上一层就是Spring之类的框架做的事情。
所以,不要埋怨现在的写代码怎么怎么难了。远古时代的人们还不是这么活了下来并且由此发展出了一系列标准是个工作变得非常轻松!