Android Socket服务器 与 Servlet 服务器

一、   Servlet服务器

打开Myeclipse新建Java WebProject

新建Servlet 我写的就是一个UserServlet 注意修改映射地址(Mapping URL)随意吧  可以不改

建好之后 删除乱七八糟注释,通过doget调用dopost ,之后在dopost中实现响应客户端的操作

ServerSocket serverSocket = null;try {    //设置Socket端口 因为Servlet 服务器端已经占用了8080 随意设置建议 1024 以外 serverSocket =  new ServerSocket(8081);            System.out.println("Socket 服务器已启动");while (true) {Socket socket = serverSocket.accept(); // 接受客户端传递的数据  并设置字符编码为utf-8  否则会出现中文乱码InputStreamReader isr = new InputStreamReader(socket.getInputStream(), "utf-8"); char[] cbuf = new char[100];isr.read(cbuf);System.out.println(" 接收来自服务器的数据 action =  "+String.copyValueOf(cbuf));DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());outputStream.write("hello android client. this is socket server".getBytes("utf-8"));outputStream.flush();outputStream.close();isr.close();socket.close();}} catch (IOException e) {System.out.println("  socket server failed  whyyyyyyyyy ");e.printStackTrace();}}


二、   Socket服务器

新建Java Project 

ServerSocket serverSocket = null;try {    //设置Socket端口 因为Servlet 服务器端已经占用了8080 随意设置建议 1024 以外 serverSocket =  new ServerSocket(8081);            System.out.println("Socket 服务器已启动");while (true) {Socket socket = serverSocket.accept(); // 接受客户端传递的数据  并设置字符编码为utf-8  否则会出现中文乱码InputStreamReader isr = new InputStreamReader(socket.getInputStream(), "utf-8"); char[] cbuf = new char[100];isr.read(cbuf);System.out.println(" 接收来自服务器的数据 action =  "+String.copyValueOf(cbuf));DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());outputStream.write("hello android client. this is socket server".getBytes("utf-8"));outputStream.flush();outputStream.close();isr.close();socket.close();}} catch (IOException e) {System.out.println("  socket server failed  whyyyyyyyyy ");e.printStackTrace();}}

Android 客户端 新起线程调用连接服务器的方法

new Thread(new Runnable() {@Overridepublic void run() {if (falg) {  String name = et_name.getText().toString();String pwd = et_pwd.getText().toString();if (!(StringUtil.checknull(name) || StringUtil.checknull(pwd))) {   User user = new User(name, pwd);//UserManager.getInstance().loginAndReg(Const.USER_REG , user, handler);Gson gson = new Gson();   // 通过Gson 将对象快速转化为Json数据//ConnectServer.getInstance().socketTest(gson.toJson(user) , handler);ConnectServer.getInstance().httpPost(gson.toJson(user), new ConnectServer.HttpCallBack() {@Overridepublic void responseBack(String response) {System.out.println(" 接受服务器反馈的数据 response =  "+response);    }}, handler);}}}}).start();

// 实现回调接口 public interface HttpCallBack {public void responseBack(String request);}String response = ""; // 服务器端返回数据try {json = "act=" + json;byte[] data = json.getBytes();    // 连接服务器路径URL url = new URL("http://10.2.0.1:8080/JavaWebwDemo/userServlet");    // 根据url打开网络连接HttpURLConnection conn = (HttpURLConnection) url.openConnection();    // 设置连接属性 超时时间 设置 输入 输出 不适用缓存 使用post方法    // 字符集(UTF-8)数据长度(data.length)内容类型("application/x-www-form-urlencoded")conn.setConnectTimeout(5 * 1000);conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);conn.setRequestMethod("POST");conn.setRequestProperty("Connection", "Keep-Alive");conn.setRequestProperty("Charset", "UTF-8");conn.setRequestProperty("Content_Length",String.valueOf(data.length));conn.setRequestProperty("Content-Type",    "application/x-www-form-urlencoded");// 建立连接conn.connect();DataOutputStream outputStream = new DataOutputStream(conn.getOutputStream());// 将数据写到输出流outputStream.write(data);outputStream.flush();outputStream.close();// 获取返回数据if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {InputStream inputStream = conn.getInputStream();response = in2Str(inputStream, "UTF-8");   // 从输入流读取数据 } else {System.out.println(" 请求服务器数据失败  " + conn.getResponseCode());}} catch (Exception e) {e.printStackTrace();handler.obtainMessage(Const.SERVER_TIMEOUT).sendToTarget();}if (callBack == null)return;callBack.responseBack(response);

下载地址: 全部免豆下载 UserServlet  ---    http://download.csdn.net/detail/ouyangjiluo/7079385 ServerMain (Socket)  ---    http://download.csdn.net/detail/ouyangjiluo/7079381 MainActivity  ----  http://download.csdn.net/detail/ouyangjiluo/7079365 ConnectServer ---   http://download.csdn.net/detail/ouyangjiluo/7079357

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. tcping测试服务器TCP端口
  3. 一句话锁定MySQL数据占用元凶
  4. Android(安卓)ListView的多布局实现
  5. Android如何在app中通过一个按钮直接跳转到的系统的权限设置页面
  6. Android数据的四种存储方式之一——总览
  7. Android(安卓)KK上对ALC5616调试笔记——音量调节
  8. Invoke-customs are only supported starting with Android(安卓
  9. android相机Camera.Parameters所有的参数值

随机推荐

  1. 新年目标
  2. Android 中使用Aspectj进行切面编程
  3. android UDP广播、组播
  4. [GoogleMap/GPS] 申请Android API Key
  5. 使用Visual Studio 2015开发Android 程序
  6. android 5分钟集成环信及时聊天DEMO
  7. Android back键ANR,与onPause,onDestory “
  8. Android 累计未读通知的数量
  9. Mac Android(安卓)屏幕同步/共享投影工具
  10. 如何让Android中的 Base64工具类支持2.2