java中各种通讯的实例(socket、http等)
2014-10-27 11:39
246 查看
socket通讯的实例:
服务端:
/**
* <b>项目名:</b>复习总结<br/>
* <b>包 名:</b>socket<br/>
* <b>文件名:</b>Server.java<br/>
* <b>版本信息:</b>1.0.0<br/>
* <b>日期:</b>2014-10-22-上午9:45:20<br/>
*
*/
package socket;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* <b>类 名:</b>Server<br/>
* <b>类描述:</b><br/>
* <b>创建人:</b>hebl<br/>
* <b>创建时间:</b>2014-10-22 上午9:45:20<br/>
* <b>修改人:</b>hebl<br/>
* <b>修改时间:</b>2014-10-22 上午9:45:20<br/>
* <b>修改备注:</b><br/>
*
* @version 1.0.0<br/>
*
*/
public class Server {
private final static Logger logger = Logger.getLogger(Server.class.getName());
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(10000);//设置端口号
while (true) {
Socket socket = server.accept();// 等待服务的请求
invoke(socket);
}
}
private static void invoke(final Socket socket) throws IOException {
new Thread(new Runnable() {
public void run() {
ObjectInputStream is = null;
ObjectOutputStream os = null;
try {
is = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
os = new ObjectOutputStream(socket.getOutputStream());
Object obj = is.readObject();
User user = (User)obj;
System.out.println("user: " + user.getUserName() + "/" + user.getPassWord());
user.setUserName(user.getUserName() + "_new");
user.setPassWord(user.getPassWord() + "_new");
os.writeObject(user);
os.flush();
} catch (IOException ex) {
logger.log(Level.SEVERE, null, ex);
} catch(ClassNotFoundException ex) {
logger.log(Level.SEVERE, null, ex);
} finally {
try {
is.close();
} catch(Exception ex) {}
try {
os.close();
} catch(Exception ex) {}
try {
socket.close();
} catch(Exception ex) {}
}
}
}).start();
}
}
客户端:
/**
* <b>项目名:</b>复习总结<br/>
* <b>包 名:</b>socket<br/>
* <b>文件名:</b>Client.java<br/>
* <b>版本信息:</b>1.0.0<br/>
* <b>日期:</b>2014-10-22-上午9:45:40<br/>
*
*/
package socket;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* <b>类 名:</b>Client<br/>
* <b>类描述:</b><br/>
* <b>创建人:</b>hebl<br/>
* <b>创建时间:</b>2014-10-22 上午9:45:40<br/>
* <b>修改人:</b>hebl<br/>
* <b>修改时间:</b>2014-10-22 上午9:45:40<br/>
* <b>修改备注:</b><br/>
*
* @version 1.0.0<br/>
*
*/
public class Client {
private final static Logger logger = Logger.getLogger(Client.class.getName());
public static void main(String[] args) throws Exception {
for (int i = 0; i < 100; i++) {
Socket socket = null;
ObjectOutputStream os = null;
ObjectInputStream is = null;
try {
socket = new Socket("localhost", 10000);
os = new ObjectOutputStream(socket.getOutputStream());
User user = new User("user_" + i, "password_" + i);
os.writeObject(user);
os.flush();
is = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
Object obj = is.readObject();
if (obj != null) {
user = (User)obj;
System.out.println("user: " + user.getUserName() + "/" + user.getPassWord());
}
} catch(IOException ex) {
logger.log(Level.SEVERE, null, ex);
} finally {
try {
is.close();
} catch(Exception ex) {}
try {
os.close();
} catch(Exception ex) {}
try {
socket.close();
} catch(Exception ex) {}
}
}
}
}
http请求:
1、get方式请求
private static String getHtml(String url) {
String urlString = url;
if (!url.startsWith("http://")) {
urlString = "http://" + url;
}
WebClient webClient;
String html = null;
webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
webClient.setJavaScriptEnabled(false);
webClient.setCssEnabled(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.setTimeout(60000);
webClient.setThrowExceptionOnScriptError(false);
HtmlPage page;
try {
//会有类型转换错误异常
page = (HtmlPage) webClient.getPage(urlString);
html = page.asXml();
} catch (Exception e) {
System.out.println("此url不合法" + url+e);
}
return html;
}
2、post方式请求
/**
* 使用post方式发送请求
* @param url
* @param params
* @return
*/
public static Document post(String url, List<NameValuePair> params) {
// POST的URL
HttpPost httppost = new HttpPost(url);
String result = "";
// 添加参数
try {
httppost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
// 设置编码
HttpResponse response = new DefaultHttpClient().execute(httppost);
// 发送Post,并返回一个HttpResponse对象
// Header header = response.getFirstHeader("Content-Length");
// String Length=header.getValue();
// 上面两行可以得dfkjb
if (response.getStatusLine().getStatusCode() == 200) {// 如果状态码为200,就是正常返回
result += EntityUtils.toString(response.getEntity());
// 得到返回的字符串
// 打印输出
// 如果是下载文件,可以用response.getEntity().getContent()返回InputStream
}
} catch (Exception e) {
e.printStackTrace();
}
return Jsoup.parse(result) ;
}
服务端:
/**
* <b>项目名:</b>复习总结<br/>
* <b>包 名:</b>socket<br/>
* <b>文件名:</b>Server.java<br/>
* <b>版本信息:</b>1.0.0<br/>
* <b>日期:</b>2014-10-22-上午9:45:20<br/>
*
*/
package socket;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* <b>类 名:</b>Server<br/>
* <b>类描述:</b><br/>
* <b>创建人:</b>hebl<br/>
* <b>创建时间:</b>2014-10-22 上午9:45:20<br/>
* <b>修改人:</b>hebl<br/>
* <b>修改时间:</b>2014-10-22 上午9:45:20<br/>
* <b>修改备注:</b><br/>
*
* @version 1.0.0<br/>
*
*/
public class Server {
private final static Logger logger = Logger.getLogger(Server.class.getName());
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(10000);//设置端口号
while (true) {
Socket socket = server.accept();// 等待服务的请求
invoke(socket);
}
}
private static void invoke(final Socket socket) throws IOException {
new Thread(new Runnable() {
public void run() {
ObjectInputStream is = null;
ObjectOutputStream os = null;
try {
is = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
os = new ObjectOutputStream(socket.getOutputStream());
Object obj = is.readObject();
User user = (User)obj;
System.out.println("user: " + user.getUserName() + "/" + user.getPassWord());
user.setUserName(user.getUserName() + "_new");
user.setPassWord(user.getPassWord() + "_new");
os.writeObject(user);
os.flush();
} catch (IOException ex) {
logger.log(Level.SEVERE, null, ex);
} catch(ClassNotFoundException ex) {
logger.log(Level.SEVERE, null, ex);
} finally {
try {
is.close();
} catch(Exception ex) {}
try {
os.close();
} catch(Exception ex) {}
try {
socket.close();
} catch(Exception ex) {}
}
}
}).start();
}
}
客户端:
/**
* <b>项目名:</b>复习总结<br/>
* <b>包 名:</b>socket<br/>
* <b>文件名:</b>Client.java<br/>
* <b>版本信息:</b>1.0.0<br/>
* <b>日期:</b>2014-10-22-上午9:45:40<br/>
*
*/
package socket;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* <b>类 名:</b>Client<br/>
* <b>类描述:</b><br/>
* <b>创建人:</b>hebl<br/>
* <b>创建时间:</b>2014-10-22 上午9:45:40<br/>
* <b>修改人:</b>hebl<br/>
* <b>修改时间:</b>2014-10-22 上午9:45:40<br/>
* <b>修改备注:</b><br/>
*
* @version 1.0.0<br/>
*
*/
public class Client {
private final static Logger logger = Logger.getLogger(Client.class.getName());
public static void main(String[] args) throws Exception {
for (int i = 0; i < 100; i++) {
Socket socket = null;
ObjectOutputStream os = null;
ObjectInputStream is = null;
try {
socket = new Socket("localhost", 10000);
os = new ObjectOutputStream(socket.getOutputStream());
User user = new User("user_" + i, "password_" + i);
os.writeObject(user);
os.flush();
is = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
Object obj = is.readObject();
if (obj != null) {
user = (User)obj;
System.out.println("user: " + user.getUserName() + "/" + user.getPassWord());
}
} catch(IOException ex) {
logger.log(Level.SEVERE, null, ex);
} finally {
try {
is.close();
} catch(Exception ex) {}
try {
os.close();
} catch(Exception ex) {}
try {
socket.close();
} catch(Exception ex) {}
}
}
}
}
http请求:
1、get方式请求
private static String getHtml(String url) {
String urlString = url;
if (!url.startsWith("http://")) {
urlString = "http://" + url;
}
WebClient webClient;
String html = null;
webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
webClient.setJavaScriptEnabled(false);
webClient.setCssEnabled(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.setTimeout(60000);
webClient.setThrowExceptionOnScriptError(false);
HtmlPage page;
try {
//会有类型转换错误异常
page = (HtmlPage) webClient.getPage(urlString);
html = page.asXml();
} catch (Exception e) {
System.out.println("此url不合法" + url+e);
}
return html;
}
2、post方式请求
/**
* 使用post方式发送请求
* @param url
* @param params
* @return
*/
public static Document post(String url, List<NameValuePair> params) {
// POST的URL
HttpPost httppost = new HttpPost(url);
String result = "";
// 添加参数
try {
httppost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
// 设置编码
HttpResponse response = new DefaultHttpClient().execute(httppost);
// 发送Post,并返回一个HttpResponse对象
// Header header = response.getFirstHeader("Content-Length");
// String Length=header.getValue();
// 上面两行可以得dfkjb
if (response.getStatusLine().getStatusCode() == 200) {// 如果状态码为200,就是正常返回
result += EntityUtils.toString(response.getEntity());
// 得到返回的字符串
// 打印输出
// 如果是下载文件,可以用response.getEntity().getContent()返回InputStream
}
} catch (Exception e) {
e.printStackTrace();
}
return Jsoup.parse(result) ;
}
相关文章推荐
- Java Delphi socket交互通讯实例
- Java中用Socket实现HTTP文件上传实例
- Socket通信实例(一)——Java与Java最简单的通讯
- java SSL安全socket的通讯实例-java学习笔记(4)
- java网络编程实例1——用socket类写http客户端
- Socket网络通讯开发总结之:Java 与 C进行Socket通讯【转】from http://www.linuxidc.com/Linux/2012-06/63173.htm
- Java 多线程ServerSocket通讯简单实例(基于TCP协议)
- java SSL安全socket的通讯实例
- jsp连接数据库大全(各类数据库驱动的连接)Java连接各种数据库的实例
- Java连接各种数据库的实例
- JAVA中数据库操作的各种方式与设计模式的应用(http://blog.csdn.net/wangyihust/archive/2006/01/14/579613.aspx)
- Java连接各种数据库的实例
- Java连接各种数据库的实例
- Java连接各种数据库的实例
- Java连接各种数据库的实例
- Java连接各种数据库的实例
- [JAVA][DB][连接]Java连接各种数据库的实例
- java网络通讯socket的课题
- Socket通讯实例
- Java连接各种数据库的实例