精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java Socket應答與HTTP服務器的瓜葛

開發 后端
Java Socket應答需要我們不斷的學習,在學習的過程中我們需要掌握很多的東西。下面我們就來看看有關Java Socket應答的服務器代碼配置。

Java Socket應答一直伴隨著我們的編程生活,在不斷的發展中有很多知識需要我們學習。下面我們就先來看看有關Java Socket應答的代碼,有點長,但是看下去就會讓你豁然開朗。

HTTP/1.1表示這個HTTP服務器是1.1版,200是服務器對客戶請求的應答狀態碼,OK是對應答狀態碼的解釋,之后是這個文檔的元信息和文檔正文。(相關應答狀態碼和元信息的解釋請參閱Inetrnet標準草案:RFC2616)。

 

  1. Http.java   
  2. import java.net.*;   
  3. import java.io.*;   
  4. import java.util.Properties;   
  5. import java.util.Enumeration;   
  6. public class Http {   
  7. protected Socket client;   
  8. protected BufferedOutputStream sender;   
  9. protected BufferedInputStream receiver;   
  10. protected ByteArrayInputStream byteStream;   
  11. protected URL target;   
  12. private int responseCode=-1;   
  13. private String responseMessage="";   
  14. private String serverVersion="";   
  15. private Properties header = new Properties();   
  16. public Http() { }   
  17. public Http(String url) {   
  18. GET(url) ;   
  19. }   
  20. /* GET方法根據URL,會請求文件、數據庫查詢結果、程序運行結果等多種內容 */   
  21. public void GET(String url) {   
  22. try {   
  23. checkHTTP(url);   
  24. openServer(target.getHost(),target.getPort() );   
  25. String cmd = "GET "+ getURLFormat(target) +" HTTP/1.0\r\n"   
  26. + getBaseHeads()+"\r\n";   
  27. sendMessage(cmd);   
  28. receiveMessage();   
  29. } catch(ProtocolException p) {   
  30. p.printStackTrace();   
  31. return;   
  32. } catch(UnknownHostException e) {   
  33. e.printStackTrace();   
  34. return;   
  35. } catch(IOException i) {   
  36. i.printStackTrace();   
  37. return;   
  38. }   
  39. }   
  40. /*   
  41. * HEAD方法只請求URL的元信息,不包括URL本身。若懷疑本機和服務器上的   
  42. * 文件相同,用這個方法檢查最快捷有效。   
  43. */   
  44. public void HEAD(String url) {   
  45. try {   
  46. checkHTTP(url);   
  47. openServer(target.getHost(),target.getPort() );   
  48. String cmd = "HEAD "+getURLFormat(target)+" HTTP/1.0\r\n"   
  49. +getBaseHeads()+"\r\n";   
  50. sendMessage(cmd);   
  51. receiveMessage();   
  52. }catch(ProtocolException p) {   
  53. p.printStackTrace();   
  54. return;   
  55. }catch(UnknownHostException e) {   
  56. e.printStackTrace();   
  57. return;   
  58. }catch(IOException i) {   
  59. i.printStackTrace();   
  60. return;   
  61. }   
  62. }   
  63. /*   
  64. * POST方法是向服務器傳送數據,以便服務器做出相應的處理。例如網頁上常用的   
  65. * 提交表格。   
  66. */   
  67. public void POST(String url,String content) {   
  68. try {   
  69. checkHTTP(url);   
  70. openServer(target.getHost(),target.getPort() );   
  71. String cmd = "POST "+ getURLFormat(target) +"HTTP/1.0\r\n"+getBaseHeads();   
  72. cmd += "Content-type: application/x-www-form-urlencoded\r\n";   
  73. cmd += "Content-length: " + content.length() + "\r\n\r\n";   
  74. cmd += content+"\r\n";   
  75. sendMessage(cmd);   
  76. receiveMessage();   
  77. }catch(ProtocolException p) {   
  78. p.printStackTrace();   
  79. return;   
  80. }catch(UnknownHostException e) {   
  81. e.printStackTrace();   
  82. return;   
  83. }catch(IOException i) {   
  84. i.printStackTrace();   
  85. return;   
  86. }   
  87. }   
  88. protected void checkHTTP(String url) throws ProtocolException {   
  89. try {   
  90. URL target = new URL(url);   
  91. if(target==null || !target.getProtocol().toUpperCase().equals("HTTP") )   
  92. throw new ProtocolException("這不是HTTP協議");   
  93. this.target = target;   
  94. } catch(MalformedURLException m) {   
  95. throw new ProtocolException("協議格式錯誤");   
  96. }   
  97. }   
  98. /*   
  99. * 與Web服務器連接。若找不到Web服務器,InetAddress會引發UnknownHostException   
  100. * 異常。若Socket連接失敗,會引發IOException異常。   
  101. */   
  102. protected void openServer(String host,int port) throws   
  103. UnknownHostException,IOException {   
  104. header.clear();   
  105. responseMessage=""responseCode=-1;   
  106. try {   
  107. if(client!=null) closeServer();   
  108. if(byteStream != null) {   
  109. byteStream.close(); byteStream=null;   
  110. }   
  111. InetAddress address = InetAddress.getByName(host);   
  112. client = new Socket(address,port==-1?80:port);   
  113. sender = new BufferedOutputStream(client.getOutputStream());   
  114. receiver = new BufferedInputStream(client.getInputStream());   
  115. }catch(UnknownHostException u) {   
  116. throw u;   
  117. }catch(IOException i) {   
  118. throw i;   
  119. }   
  120. }   
  121. /* 關閉與Web服務器的連接 */   
  122. protected void closeServer() throws IOException {   
  123. if(client==null) return;   
  124. try {   
  125. client.close(); sender.close(); receiver.close();   
  126. } catch(IOException i) {   
  127. throw i;   
  128. }   
  129. client=nullsender=nullreceiver=null;   
  130. }   
  131. protected String getURLFormat(URL target) {   
  132. String spec = "http://   
  133. +target.getHost();   
  134. if(target.getPort()!=-1)   
  135. spec+=":"+target.getPort();   
  136. return spec+=target.getFile();   
  137. }   
  138. /* 向Web服務器傳送數據 */   
  139. protected void sendMessage(String data) throws IOException{   
  140. sender.write(data.getBytes(),0,data.length());   
  141. sender.flush();   
  142. }   
  143. /* 接收來自Web服務器的數據 */   
  144. protected void receiveMessage() throws IOException{   
  145. byte data[] = new byte[1024];   
  146. int count=0;   
  147. int word=-1;   
  148. // 解析***行   
  149. while( (word=receiver.read())!=-1 ) {   
  150. if(word=='\r'||word=='\n') {   
  151. word=receiver.read();   
  152. if(word=='\n') word=receiver.read();   
  153. break;   
  154. }   
  155. if(count == data.length) data = addCapacity(data);   
  156. data[count++]=(byte)word;   
  157. }   
  158. String message = new String(data,0,count);   
  159. int mark = message.indexOf(32);   
  160. serverVersion = message.substring(0,mark);   
  161. while( mark<message.length() && message.charAt(mark+1)==32 ) mark++;   
  162. responseCode = Integer.parseInt(message.substring(mark+1,mark+=4));   
  163. responseMessage = message.substring(mark,message.length()).trim();   
  164. // 應答狀態碼和處理請讀者添加   
  165. switch(responseCode) {   
  166. case 400:   
  167. throw new IOException("錯誤請求");   
  168. case 404:   
  169. throw new FileNotFoundException( getURLFormat(target) );   
  170. case 503:   
  171. throw new IOException("服務器不可用" );   
  172. }   
  173. if(word==-1) throw new ProtocolException("信息接收異常終止");   
  174. int symbol=-1;   
  175. count=0;   
  176. // 解析元信息   
  177. while( word!='\r' && word!='\n' && word>-1) {   
  178. if(word=='\t') word=32;   
  179. if(count==data.length) data = addCapacity(data);   
  180. data[count++] = (byte)word;   
  181. parseLine: {   
  182. while( (symbol=receiver.read()) >-1 ) {   
  183. switch(symbol) {   
  184. case '\t':   
  185. symbol=32; break;   
  186. case '\r':   
  187. case '\n':   
  188. word = receiver.read();   
  189. if( symbol=='\r' && word=='\n') {   
  190. word=receiver.read();   
  191. if(word=='\r') word=receiver.read();   
  192. }   
  193. if( word=='\r' || word=='\n' || word>32) break parseLine;   
  194. symbol=32; break;   
  195. }   
  196. if(count==data.length) data = addCapacity(data);   
  197. data[count++] = (byte)symbol;   
  198. }   
  199. word=-1;   
  200. }   
  201. message = new String(data,0,count);   
  202. mark = message.indexOf(':');   
  203. String key = null;   
  204. if(mark>0) key = message.substring(0,mark);   
  205. mark++;   
  206. while( mark<message.length() && message.charAt(mark)<=32 ) mark++;   
  207. String value = message.substring(mark,message.length() );   
  208. header.put(key,value);   
  209. count=0;   
  210. }   
  211. // 獲得正文數據   
  212. while( (word=receiver.read())!=-1) {   
  213. if(count == data.length) data = addCapacity(data);   
  214. data[count++] = (byte)word;   
  215. }   
  216. if(count>0) byteStream = new ByteArrayInputStream(data,0,count);   
  217. data=null;   
  218. closeServer();   
  219. }   
  220. public String getResponseMessage() {   
  221. return responseMessage;   
  222. }   
  223. public int getResponseCode() {   
  224. return responseCode;   
  225. }   
  226. public String getServerVersion() {   
  227. return serverVersion;   
  228. }   
  229. public InputStream getInputStream() {   
  230. return byteStream;   
  231. }   
  232. public synchronized String getHeaderKey(int i) {   
  233. if(i>=header.size()) return null;   
  234. Enumeration enum = header.propertyNames();   
  235. String key = null;   
  236. for(int j=0; j<=i; j++)   
  237. key = (String)enum.nextElement();   
  238. return key;   
  239. }   
  240. public synchronized String getHeaderValue(int i) {   
  241. if(i>=header.size()) return null;   
  242. return header.getProperty(getHeaderKey(i));   
  243. }   
  244. public synchronized String getHeaderValue(String key) {   
  245. return header.getProperty(key);   
  246. }   
  247. protected String getBaseHeads() {   
  248. String inf = "User-Agent: myselfHttp/1.0\r\n"+   
  249. "Accept: www/source; text/html; image/gif; */*\r\n";   
  250. return inf;   
  251. }   
  252. private byte[] addCapacity(byte rece[]){   
  253. byte temp[] = new byte[rece.length+1024];   
  254. System.arraycopy(rece,0,temp,0,rece.length);   
  255. return temp;   
  256. }   
  257. public static void main(String[] args) {   
  258. Http http=new Http();   
  259. //http.GET("http://192.168.1.5   
  260. );   
  261. int i;   
  262. for (i=0; i<50000; i++) {   
  263. http.GET("http://www.model-dl.com/modelinfo.asp?modelid=101 );   
  264. http.POST("http://www.model-dl.com/modelinfo.asp?modelid=101,"ratecontd=101&MM_insert=form1 ");   
  265. }   
  266. }   

以上就是對Java Socket應答的相關介紹,希望大家有所發現。

【編輯推薦】

  1. Java Socket編程相關源代碼的介紹
  2. Java Socket網絡傳輸的序列化機制
  3. Java Socket傳輸如何完成自己的網絡任務
  4. Java Socket傳輸數據的文件系統介紹
  5. Java Socket通信的序列化和反序列化代碼介紹
責任編輯:張浩 來源: 互聯網
相關推薦

2018-10-09 09:28:12

HTTPHTTP協作服務器

2019-04-23 10:48:55

HTTPTomcat服務器

2019-08-01 15:25:17

Http服務器協議

2010-05-25 13:20:46

http與svn

2019-08-22 15:26:24

HTTP服務器Python

2019-07-04 15:00:32

PythonHTTP服務器

2017-11-10 08:58:49

Web服務器應用程序

2009-07-03 13:05:47

JSP HTTP服務器

2010-03-19 15:01:23

Java Socket

2015-10-08 09:38:24

HTTP網絡協議文件傳輸

2015-09-29 09:25:20

HTTP網絡協議

2015-09-28 13:39:13

Http網絡協議HTTP

2015-10-09 09:41:24

HTTP網絡協議文件傳輸

2015-10-10 16:46:14

HTTP網絡協議文件傳輸

2011-12-07 17:05:45

JavaNIO

2012-02-27 13:56:19

Java服務器

2010-03-19 17:04:01

Java socket

2010-03-19 14:01:55

Java Socket

2010-03-17 17:54:25

java Socket

2010-03-18 20:00:35

Java socket
點贊
收藏

51CTO技術棧公眾號

久国内精品在线| 91久久久免费一区二区| 国产成人精品福利一区二区三区| 久久亚洲AV无码| 婷婷精品在线| 欧美三级中文字| 超碰10000| 四虎国产精品永远| 蜜臀久久久久久久| 992tv在线成人免费观看| 少妇一级黄色片| 国产美女撒尿一区二区| 欧美在线短视频| 国产91沈先生在线播放| 国产午夜视频在线观看| 国产aⅴ综合色| 国产精品成人观看视频国产奇米| 国产大片免费看| 日韩手机在线| 日韩免费视频一区二区| 免费黄色一级网站| 9999在线视频| 亚洲三级视频在线观看| 欧美黑人xxxxx| 亚洲免费成人网| 老司机免费视频一区二区三区| 性欧美长视频免费观看不卡| 911国产在线| 久草在线成人| 亚洲成在人线av| 国产在线视频三区| 国外成人福利视频| 色婷婷综合在线| 霍思燕三级露全乳照| 1769视频在线播放免费观看| 91免费视频网| 国产精品毛片va一区二区三区| 在线不卡免费视频| 国产精品女主播一区二区三区| 久久69精品久久久久久久电影好 | 中文字幕av一区二区三区| 国产精品一国产精品最新章节| 国产又黄又爽视频| 久久国产福利国产秒拍| 国产精品扒开腿做爽爽爽男男| 国产情侣自拍av| 激情视频一区| 欧美激情三级免费| 午夜爽爽爽男女免费观看| 色综合久久一区二区三区| 一区三区二区视频| 精品熟妇无码av免费久久| 免费成人网www| 亚洲免费成人av电影| 欧美 变态 另类 人妖| 日本一道高清一区二区三区| 亚洲国产精品va在线| 久久精品女同亚洲女同13| 国产精品国产| 亚洲精品国产精品久久清纯直播| 最近中文字幕无免费| 蜜桃一区av| 日韩精品亚洲精品| 精品无码人妻一区| 亚洲熟女少妇一区二区| 136国产福利精品导航网址应用| 制服丝袜亚洲色图| 在线免费看v片| 日本99精品| 精品剧情v国产在线观看在线| 在线成人精品视频| 国产一区丝袜| 精品视频中文字幕| 91成人在线免费视频| 精品视频免费在线观看| www.久久久久久.com| 欧美精品videos极品| 国内揄拍国内精品久久| 91精品国产电影| 波多野结衣一区二区三区四区| 日本大胆欧美人术艺术动态 | 久久影院一区二区三区| 日韩女优电影在线观看| 美女搡bbb又爽又猛又黄www| 日韩精选在线| 中文字幕视频一区二区在线有码 | 欧美国产专区| 97超级碰碰碰久久久| 欧美xxxx黑人又粗又长精品| 免费精品一区二区| 麻豆91精品视频| 91精品久久久久久蜜桃| 天天色天天操天天射| 久久久噜噜噜久久人人看 | www.av在线播放| 自拍偷拍国产精品| 毛片在线视频播放| av免费在线一区| 日韩欧美自拍偷拍| 久久中文字幕人妻| 天天精品视频| 91成人福利在线| 国产精品无码在线播放| 97久久人人超碰| 亚洲欧洲一区二区| 丰满诱人av在线播放| 欧美在线一二三| 尤物网站在线观看| 色婷婷色综合| 欧美在线视频免费| www.久久久久久| 国产女同性恋一区二区| 免费特级黄色片| 日本h片久久| 日韩激情av在线播放| 我要看黄色一级片| 三级欧美韩日大片在线看| 99在线高清视频在线播放| 国产精品四虎| 亚洲成a人v欧美综合天堂下载| 三上悠亚av一区二区三区| 老汉色老汉首页av亚洲| 久久在线免费视频| 怡红院男人天堂| 91在线视频网址| 免费极品av一视觉盛宴| 色8久久久久| 一本一道久久a久久精品逆3p | aa国产成人| 欧美精品v日韩精品v韩国精品v| 中文字幕5566| 亚洲精品资源| 国产精品一区二区三区免费| 黄色在线播放网站| 欧美日韩日日摸| 三区四区在线观看| 三级不卡在线观看| 牛人盗摄一区二区三区视频| 2020国产在线| 精品美女一区二区| 538任你躁在线精品视频网站| 青娱乐精品在线视频| 欧美日韩系列| 欧美男女交配| 亚洲男人天堂网站| 国产精品免费精品一区| 99精品热视频| 日韩精品 欧美| 久久国产精品免费精品3p| 欧美国产日韩一区二区在线观看| 国产三级伦理片| 亚洲一区站长工具| 欧美日韩一二三区| 欧洲性xxxx| 免费看精品久久片| 亚洲欧美日韩国产yyy| 久久福利在线| 色综久久综合桃花网| 中文字幕在线观看第二页| 国产亚洲一本大道中文在线| 天天碰免费视频| 精品一级毛片| 成人春色激情网| 国产黄色小视频在线| 5858s免费视频成人| 亚洲综合网在线| 国产91对白在线观看九色| 国产曰肥老太婆无遮挡| 精品国产午夜肉伦伦影院| 91精品国产乱码久久久久久久久 | 分分操这里只有精品| 国产精品午夜av| 97avcom| 国产一级二级三级在线观看| 欧美三区在线观看| 国产十六处破外女视频| 成人一道本在线| 日韩一级在线免费观看| 日韩精品免费| 99热99热| 午夜激情成人网| 久久久999国产| 国精品人妻无码一区二区三区喝尿| 婷婷激情综合网| 欧美午夜激情影院| 国产美女精品一区二区三区| 日本福利视频一区| 欧美男男gaytwinkfreevideos| 精品视频在线观看日韩| 男女高潮又爽又黄又无遮挡| 国产区一区二| 91精品国产99| 麻豆传媒视频在线| 亚洲福利视频在线| 亚洲天堂avav| 国产中文字幕一区| 久久久久久91| 色视频免费在线观看| 欧美日本一区二区| 五月婷婷中文字幕| 日韩一区日韩二区| 中文字幕国产专区| 国产精品99久久久久久久女警| 高清在线观看免费| 亚洲精彩视频| 欧美日韩亚洲免费| 91成人入口| 国产精品欧美一区二区三区奶水| 国产蜜臀在线| 中文字幕亚洲字幕| 天堂av网在线| 欧美成人猛片aaaaaaa| 中国a一片一级一片| 精品久久久久久国产91| 精品国产视频在线观看| 日本一区二区三区视频视频| 成人免费看片载| 精品一区二区三区免费| 免费在线观看毛片网站| 黄色av日韩| 在线播放 亚洲| 日本大胆欧美| 欧美二区在线| 北条麻妃一区二区三区在线观看 | 国产精品久久久久久妇女6080 | 亚洲一二三区av| 一本色道久久| 亚洲色成人www永久在线观看| 999国产精品视频| 欧洲精品久久| 中文字幕精品影院| 精品不卡在线| 国产精品白丝av嫩草影院| 亚洲xxx自由成熟| 亚洲欧洲日韩精品在线| 亚洲国产电影在线观看| 国产av人人夜夜澡人人爽| 91久久综合| 免费在线黄网站| 午夜久久美女| 国产精品av免费观看| 99免费精品| 一区二区精品在线| 日韩在线不卡| 一区二区三区在线视频111| 久久久国产成人| 久久久青草青青国产亚洲免观| 人妻换人妻a片爽麻豆| 成人丝袜18视频在线观看| 美女被艹视频网站| 国产精品18久久久| 亚洲午夜精品在线观看| 国产精品1区2区| 中文字幕人妻一区| 成人av免费在线| 污污内射在线观看一区二区少妇| 99在线精品一区二区三区| 国产a级黄色片| 99久久伊人精品| ww国产内射精品后入国产| av播放在线| 这里只有精品在线观看| 日韩子在线观看| 欧美大码xxxx| av成人福利| 日本乱人伦a精品| 91在线亚洲| 91久久夜色精品国产网站| 香港久久久电影| 精品久久精品久久| 欧美日韩第一| 麻豆传媒网站在线观看| 999亚洲国产精| 一本色道无码道dvd在线观看| 青草国产精品久久久久久| 日韩在线不卡一区| 国产成人av福利| 少妇饥渴放荡91麻豆| 老司机免费在线视频| 亚洲精品视频久久| 婷婷五月在线视频| 欧美激情视频三区| 久久野战av| 亚洲va欧美va国产综合久久| 超碰成人在线观看| 日韩av影视| 欧美成人日本| 中文字幕乱码人妻综合二区三区| 美国一区二区三区在线播放 | 欧美激情视频给我| 欧美日韩成人影院| 99久久久精品免费观看国产| 亚洲三级网页| 一区二区三区四区免费观看| 国产一级久久| 亚洲一级片免费观看| 91在线视频免费观看| 中文字幕在线有码| 在线观看欧美日本| 亚洲成熟女性毛茸茸| 亚洲图片欧美午夜| 91超碰国产在线| 91精品视频大全| 九九热线有精品视频99| 艳母动漫在线免费观看| 视频一区二区国产| 一级黄色电影片| 亚洲色欲色欲www| 日本免费精品视频| 精品久久久久久综合日本欧美| 成年人在线免费观看| 韩剧1988免费观看全集| 久久久久久一区二区三区四区别墅| 国产视频在线观看一区| 婷婷综合社区| 成人免费xxxxx在线视频| 成人一级黄色片| 青青草激情视频| 欧美日韩一区高清| 黄色电影免费在线看| 久久久日本电影| 欧美精品影院| 一区二区三区电影| 日韩精品视频网| 中文字幕av观看| 亚洲图片一区二区| 国产欧美综合视频 | 中国1级黄色片| 色哟哟欧美精品| 天天av综合网| 国内精品伊人久久| 99精品中文字幕在线不卡| 最新av在线免费观看| 久久精品国产成人一区二区三区| 欧美偷拍一区二区三区| 欧美性猛交xxxx偷拍洗澡| 色窝窝无码一区二区三区| 久久99久久99精品中文字幕| crdy在线观看欧美| 精品少妇人妻av一区二区| 男女性色大片免费观看一区二区| 一级黄色片大全| 日韩欧美亚洲综合| 日韩在线免费播放| 51视频国产精品一区二区| 色老板在线视频一区二区| 欧美变态另类刺激| 99精品在线观看视频| 国产无遮挡又黄又爽| 亚洲激情在线视频| 蜜桃麻豆av在线| 欧美日韩亚洲免费| 日本vs亚洲vs韩国一区三区二区| 免费网站在线高清观看| 在线视频国产一区| 日本高清视频在线观看| 91精品国产自产在线| 亚洲精品国产偷自在线观看| 伊人国产精品视频| 亚洲激情av在线| 亚洲精品一区二区三区区别 | www.国产亚洲| 成人激情小说乱人伦| 国产午夜在线播放| 亚洲夜晚福利在线观看| 高清在线一区| 亚洲精品偷拍视频| 成人激情av网| 久久精品久久久久久久| 中文字幕视频一区二区在线有码 | 日韩一区二区影院| 黄色羞羞视频在线观看| 久久亚洲免费| 蜜桃久久久久久久| 青青草原在线免费观看| 亚洲高清在线观看| 99re66热这里只有精品4| 中文字幕久久综合| 成人免费视频网站在线观看| 51国产偷自视频区视频| 色妞久久福利网| 91成人入口| 99草草国产熟女视频在线| 亚洲三级在线看| 涩涩视频在线观看免费| 国产精品永久免费视频| 欧美三级小说| 精品成人av一区二区三区| 911精品国产一区二区在线| www欧美xxxx| 日韩国产精品一区二区| 国产美女久久久久| 国产精品免费精品一区| 欧美成人免费全部观看天天性色| 日韩mv欧美mv国产网站| 手机在线国产视频| 日韩欧美精品中文字幕| 成人在线播放免费观看| 欧美日本韩国一区二区三区| 狠狠色综合日日|