Java(Android) Http通信
2015-06-07 23:08
337 查看
服务器端代码:
客户端代码:
服务器端可运行代码:
客户端可运行代码:
ServerSocket serverSocket=new ServerSocket(9898);//开启9898端口 Socket socket== serverSocket.accept();//等待客户端连入 //读取客户端发来的信息 BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); String receivedMsg=null; while ((receivedMsg = reader.readLine()) != null) { //对客户端发来的消息作出处理 } //向客户端发送消息 BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); writer.write("向客户端发送的消息"); //记得用完之后要关闭端口和连接 socket.close(); serverSocket.close();
客户端代码:
Socket socket== new Socket("127.0.0.1", 9898);//连接指定ip和端口号的服务器,本机上的服务器ip为127.0.0.1 //向服务器发送数据 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); writer.write("向服务器发送的数据"+"\n");//服务器读取到换行符的时候才认为客户端发送完毕,服务器端也一样。 writer.flush(); //读取服务器端发送的数据 BufferedReader readerreader = new BufferedReader(new InputStreamReader(socket.getInputStream())); String response=null; while ((response = reader.readLine()) != null) { //处理服务器发来的数据 }
服务器端可运行代码:
package com.imooc.server; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; public class SocketServer { public static void main(String[] args) { SocketServer socketServer = new SocketServer(); socketServer.startServer(); } public void startServer() { ServerSocket serverSocket = null; Socket socket = null; try { serverSocket = new ServerSocket(9898); System.out.println("server started.."); while (true) { socket = serverSocket.accept(); manageConnection(socket); } } catch (Exception e) { e.printStackTrace(); } finally { try { socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } public void manageConnection(final Socket socket) { new Thread(new Runnable() { @Override public void run() { BufferedReader reader = null; BufferedWriter writer =null; try { System.out.println("client " + socket.hashCode() + " connedted"); reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); String receivedMsg; while ((receivedMsg = reader.readLine()) != null) { System.out.println("client " + socket.hashCode() + ": " + receivedMsg); writer.write("server reply: " + receivedMsg + "\n"); writer.flush(); } } catch (IOException e) { e.printStackTrace(); } finally { try { reader.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } } }).start(); } }
客户端可运行代码:
package com.imooc.client; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; public class SocketClient { public static void main(String[] args) { SocketClient client = new SocketClient(); client.start(); } public void start() { BufferedReader inputReader = null; BufferedReader reader = null; BufferedWriter writer = null; Socket socket = null; try { socket = new Socket("127.0.0.1", 9898); reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); inputReader = new BufferedReader(new InputStreamReader(System.in)); startServerReplyListener(reader); String inputContent; int count = 0; while (!(inputContent = inputReader.readLine()).equals("bye")) { writer.write(inputContent); if (count % 2 ==0) { writer.write("\n"); } count++; writer.flush(); } } catch (Exception e) { e.printStackTrace(); } finally { try { reader.close(); writer.close(); inputReader.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } public void startServerReplyListener(final BufferedReader reader) { new Thread(new Runnable() { @Override public void run() { try { String response; while ((response = reader.readLine()) != null) { System.out.println(response); } } catch (IOException e) { e.printStackTrace(); } } }).start(); } }
相关文章推荐
- 实现HTTP协议Get、Post和文件上传功能——使用libcurl接口实现
- HttpContext.Session==null 解决办法
- poj 3281 Dining 【拆点网络流】【最大流经典问题 关键建图】
- 网络抖动
- 网络加密
- UNP---套接字简介
- 从多层感知器到卷积网络(二)
- java网络编程笔记
- UNP学习记录---三次握手和四次挥手
- Android 优化电池使用时间——确定和检测网络状态
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- iOS开发网络—13使用ASI框架进行文件下载
- iOS开发网络—11发送json数据给服务器以及多值参数
- iOS开发网络—12数据缓存
- iOS开发网络—10监测网络状态
- iOS开发网络—09简单介绍ASI框架的使用
- iOS开发网络—08文件的上传
- iOS开发网络—07大文件的多线程断点下载
- iOS开发网络—06NSURLConnection基本使用
- iOS开发网络—05数据安全