基于Socket创建Web服务
为什么要使用Socket呢,我们来看下图
aaarticlea/png;base64,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*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" alt="" />
Socket原理图回顾:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgIAAAGjCAMAAAEeNL2+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGeUExURcDAwPv7+/z8/P39/f7+/v////f39/j4+Pn5+fr6+vDw8PHx8fLy8vT09Pb29ubm5ufn5+jo6Orq6u3t7fPz89jY2Nra2tzc3N/f3+Pj48nJycvLy87OztLS0u7u7ri4uLu7u7+/v8XFxczMzNbW1vX19ampqaysrLGxscHBwc3Nzezs7Jubm5+fn6Wlpa2trbe3t5GRkZaWlpycnLCwsIqKio+Pj6urq8rKyoaGhouLi5KSkqioqLm5ucjIyNnZ2eXl5e/v74SEhImJiZCQkJqamqenp8fHx4ODg4iIiJmZmaamptfX1yAgIDg4OEBAQAgICAAAAIWFhVFRUXR0dCUlJTw8PGNjY6Ojo5SUlHh4eGBgYBkZGRsbGxwcHBERER0dHX9/f1hYWBAQEEhISHl5eVBQUJeXl6+vr2hoaHBwcIeHhygoKBgYGH19fS0tLTQ0NAUFBTAwMM/Pz29vb2dnZz8/Pzo6Ora2thoaGl9fX5iYmBYWFhQUFDIyMhMTE46OjoGBgW1tbX5+fg8PDwEBAVJSUgMDA3V1dQAAAFHkUK8AAACKdFJOU///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AIRNqPkAAAAJcEhZcwAACxMAAAsTAQCanBgAAD9WSURBVHhe7V3NrrMgFPw2PoM7Y0Liu2BCTLdsmvAEbHz/b84BFRUtVtt6W+f2tra1ejgMwz/8E2VZiuefsuwf/vegLvZeQfIVYNAM/oSHOMqGDm1bGOWPU3G0Dc9g/xWGUJhCZHWbyUy490uo/WsHb0ObZXmWaXrl/0eXCeBt8HaUUubu0PDzCDIC+tiHIv2eUzzwpIAxbdNRpOqNJfjDB3xoc11r66+gcEErnLVWdpftbKD3rfMzuQCf3abAx3dEVZHVODmH48n5yzbc/WuIAv+wouW7G8O/721o+E0lbVZqPqSz0zDypDIiE9a/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" alt="" />
-------------------编写SocketService,完成字母小写转大写功能-----------------------------
ServerSocket服务器端代码如下:
public static void main(String[] args) throws IOException {
// 1:建立服务器端的tcp socket服务,必须监听一个端口
ServerSocket ss = new ServerSocket(9999);
// 2: 通过服务器端的socket对象的accept方法获取连接上的客户端对象
Socket s = null;
// 3:获取客户端的数据
while (true) {
// 接受Socket服务,如果有,没有则堵塞,等待
s = ss.accept();
System.out.println("accept success.......");
// 从Socekt输入流中获取客户端发送过来的输出流
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
String str = new String(buf, 0, len);
System.out.println("从客户端传送来的数据如下:");
System.out.println(str);
// 通过服务器端Socket输出流,写数据,会传送到客户端Socket输入流中
OutputStream out = s.getOutputStream();
// 把字母转化为大写
out.write(str.toUpperCase().getBytes());
s.close();
}
}
为了防止服务端发生异常之后关闭socket,正确的代码如下:
public static void main(String[] args) throws IOException {
// 1:建立服务器端的tcp socket服务,必须监听一个端口
ServerSocket ss = new ServerSocket(24992);
// 2: 通过服务器端的socket对象的accept方法获取连接上的客户端对象
Socket s = null;
// 3:获取客户端的数据
while (true) {
// 接受Socket服务,如果有,没有则堵塞,等待
s = ss.accept();
System.out.println("accept success......."); try {
// 从Socekt输入流中获取客户端发送过来的输出流
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
String str = new String(buf, 0, len);
System.out.println("从客户端传送来的数据如下:");
System.out.println(str); // 通过服务器端Socket输出流,写数据,会传送到客户端Socket输入流中
OutputStream out = s.getOutputStream();
// 把字母转化为大写
out.write(str.toUpperCase().getBytes());
} catch (Exception e) {
System.out.println("error");
} finally {
s.close();
}
}
}
通过Java客户端访问SocketService服务
public static void main(String[] args) throws Exception {
Scanner input=new Scanner(System.in);
// 1: 创建一个基于TCP协议的socket服务,在建立对象时,要指定连接服务器和端口号
Socket s=new Socket("127.0.0.1",9999);
// 2: 通过建立的Socket对象获取Socket中的输出流,的调用getOutStream方法
OutputStream out=s.getOutputStream();
System.out.println("请输入要转化的字母,或者单词!");
// 3: 写入到Socket输出流中
String word=input.next();
out.write(word.getBytes());
// 4: 通过建立的Socket对象获取Socket中的输入流,输入流会接受来自服务器端数据
InputStream in=s.getInputStream();
byte[] buf=new byte[1024];
// 5: 获取输入字节流的数据,注意此方法是堵塞的,如果没有获取数据会一直等待
int len=in.read(buf);
String str=new String(buf,0,len);
System.out.println("服务返回来的结果如下:");
System.out.println(str);
// 关闭Socket
s.close();
}
注意先启动服务器端在启动客户端:否则会出现连接异常
服务器端显示结果如下:
accept success.......
从客户端传送来的数据如下:
hello
客户端端显示结果如下:
请输入要转化的字母,或者单词!
hello
服务返回来的结果如下:
HELLO
通过IE来访问SocketService
服务端:
accept success.......
从客户端传送来的数据如下:
GET /WWWWW HTTP/1.1
Host: localhost:9999
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: _ga=GA1.1.1127292809.1501852337
Connection: keep-alive
Cache-Control: max-age=0
客户端:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxEAAAELCAIAAAAp15zlAAAgAElEQVR4nO2da5Pcxrnf9xvhE+GDOOWTGilW2ahSxNKbVJSktuKUY1M6NAma1IUiKdK8iCJNSbYEU8dKKZGOj03zfllypaJ0NHmBAdCX5+kLBpjdJX+/2hc7PY3up5/u6f6j0eje2g3y4OGjU7//6P0LV2/fufdtMnfvPfjg8vV3z31478HDcPoAAAAAB4KtwHd/u3nr+KkL1z798+7ubrpgatnd3f34s3/5H4dPHD914YPL1/njjz/++OOPP/4O9J+qme4/ePjbd859/sX/yVVLJn/56usj75x7tPPkBwAAAICDjKyZnj59+s4HH175+PN1BFPL9c++eOeDD7///oclAAAAwIFF1kwff/bFu+eujHgkJ3Lm4rWPP/uXOay/ffv2HMkCAADA88QkgkHQTPcfPHzr5Nlbd+6m6KGPrl679oePw3Hu3Lv/1smzO0931zfXoWmaydMEAACA54xJBIOgmT765POL1/6YIphOvv3uT366+MlPF+fOXwzHvPpJ8+HHn0etuXnz5pUrV44cOXLkyJErV6784x//2IALAAAA4PlmFs309OnTt06evXPvfrpg+slPF/+0+E/hB3kPHj76zfHTP/z7v2t27OzsnDp16uLFi7dv3/7uu+++++6727dvX7hw4b333tvZ2ZnVBQAAAPB8s6ZgOHv27NLXTF//9e8nzlzKEkw/+eni/IXIPNO333777rkr/3ZTfpr4+PHjt956686dO/5Xd+7cefPNNx8/fpzsgrrcKqq1pVRTFVtlPV16AAAAsGckaqZ79+7Vdf3qq68uFotXX321ruv79++fPXt2sVgsfc300Seff9r8JUswRR/MtXza/OXaH//s2/fjjz++//779+7d60NOnTp1+vTp/uPdu3dPnz79448/prngYGimG0cPLVoOHb0xUeCK89uLQ9vbh6xvzm8v3M+Hjp4/mhDp6PZisX3ettv5vH10qoSGjwAAABOSopm+/PLLV155pR1dX375Zeefpa+Z3jv/0b/+7ebkgunbb7/95t/+fvrCNd/Emzdvfvjhh2aIo5mWy+Xly5dv3ryZ5oJ9ppnEy88P+uH8dicv1gxcsdIetgRpJdYQcXVVUiQ7h/Pbi4WhdXJyS0kIAABgDqKa6d69ez/72c8Wi8WJ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" alt="" />
HTTP协议格式简单回顾:
Http请求由三部分组成,分别是:请求行、消息报头、请求正文
请求行:
以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version
消息报头:
Accept: Accept请求报头域用于指定客户端接受哪些类型的信息
Host:(发送请求时,该报头域是必需的)请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的 默认80则省略
Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制
Content-Type:text/html;charset=UTF-8
HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
HTTP-Version Status-Code Reason-Phrase
其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
HTTP/1.1
200 OK
问题思考
目前我们用Java语言创建一个Socket服务器端, 然用 Java Socket访问没有任何问题. 用C# Socket客户端访问也没有任何问题(说明不同过的语言编写的程序可以通过Socket通信) 用IE访问Socket服务端同样也没问题,IE本身是用VC++语言开发的
但是, 如果我们的服务复杂一点呢. 例如 我过去的单词 操作1:小写转大写,2:大写转小写 3:英文转中文…… 而且我们发现IE在发送请求的时候不但传输的数据还传输了协议. 而且目前我们的很多应用都是基于Web开发的. 如果我们处理Web的请求. 那么还需要从发送过来的协议中获取数据.所以最好的解决办法就是规定格式, 客户端统一格式发送,只要格式统一,服务器端就从指定的格式中获取数据就OK了