java Socket 短连接和长连接的区别

Python013

java Socket 短连接和长连接的区别,第1张

长连接 是一旦一个客户端登陆上服务器,其与服务器之间的连接就不关闭,不管他们之间进行了多少次交易,直到客户端退出登陆或网络出现故障。这种技术在联机交易系统实现有利于提高效率。

短连接是客户端每发一个请求就与服务器建立一个连接,交易完成后关闭连接,这种技术实现较长连接 简单。

长:connect连上后不断开, 进行N次收发操作.

短:每次都connect, 完成任务后立即断开. 下次重连.

package com.zhidao.www

import java.io.BufferedReader

import java.io.InputStream

import java.io.InputStreamReader

import java.net.HttpURLConnection

import java.net.URL

public class TestShort {

public static void main(String[] args) {

// TODO Auto-generated method stub

String httpUrl = "http://apis.baidu.com/3023/shorturl/shorten"

String httpArg = "url_long=http%3A%2F%2Fapistore.baidu.com%2Fastore%2Fshopready%2F1973.html"

String jsonResult = request(httpUrl, httpArg)

System.out.println(jsonResult)

}

/**

* @param urlAll

*:请求接口

* @param httpArg

*:参数

* @return 返回结果

*/

public static String request(String httpUrl, String httpArg) {

BufferedReader reader = null

String result = null

StringBuffer sbf = new StringBuffer()

httpUrl = httpUrl + "?" + httpArg

try {

URL url = new URL(httpUrl)

HttpURLConnection connection = (HttpURLConnection) url

.openConnection()

connection.setRequestMethod("GET")

// 填入apikey到HTTP header

connection.setRequestProperty("apikey", "自己的apikey")

connection.connect()

InputStream is = connection.getInputStream()

reader = new BufferedReader(new InputStreamReader(is, "UTF-8"))

String strRead = null

while ((strRead = reader.readLine()) != null) {

sbf.append(strRead)

sbf.append("\r\n")

}

reader.close()

result = sbf.toString()

} catch (Exception e) {

e.printStackTrace()

}

return result

}

}

这个可以用 不过要自己申请下api key 得到的字符串也要自己解析