Android与服务器通信的方法之一(TCP)效率高安全性完善

来源:互联网 发布:网络筹款平台哪个好 编辑:程序博客网 时间:2024/04/30 08:27
客户端代码:

Java代码

package com.yarin.android.Examples_08_04;     import java.io.BufferedReader;  import java.io.BufferedWriter;  import java.io.InputStreamReader;  import java.io.OutputStreamWriter;  import java.io.PrintWriter;  import java.net.InetAddress;  import java.net.Socket;  import android.app.Activity;  import android.os.Bundle;  import android.util.Log;  import android.view.View;  import android.view.View.OnClickListener;  import android.widget.Button;  import android.widget.EditText;  import android.widget.TextView;     public class Activity01 extends Activity  {      private final String        DEBUG_TAG   = "Activity01";              private TextView    mTextView=null;      private EditText    mEditText=null;      private Button      mButton=null;             @Override     public void onCreate(Bundle savedInstanceState)      {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);                      mButton = (Button)findViewById(R.id.Button01);          mTextView=(TextView)findViewById(R.id.TextView01);          mEditText=(EditText)findViewById(R.id.EditText01);                      //登陆          mButton.setOnClickListener(new OnClickListener()          {              public void onClick(View v)              {                  Socket socket = null;                  String message = mEditText.getText().toString() + "\r\n";                   try                   {                         //创建Socket                      socket = new Socket("116.29.27.138",5554); //查看本机IP,每次开机都不同                      //socket=new Socket("192.168.1.110",50000);                      //向服务器发送消息                      PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);                            out.println(message);                                               //接收来自服务器的消息                      BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));                       String msg = br.readLine();                                               if ( msg != null )                      {                          mTextView.setText(msg);                      }                      else                     {                          mTextView.setText("数据错误!");                      }                      //关闭流                      out.close();                      br.close();                      //关闭Socket                      socket.close();                   }                  catch (Exception e)                   {                      // TODO: handle exception                      Log.e(DEBUG_TAG, e.toString());                  }              }          });      }  }  import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.InetAddress;import java.net.Socket;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView; public class Activity01 extends Activity{private final String DEBUG_TAG = "Activity01"; private TextView mTextView=null;private EditText mEditText=null;private Button mButton=null;  @Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main); mButton = (Button)findViewById(R.id.Button01);mTextView=(TextView)findViewById(R.id.TextView01);mEditText=(EditText)findViewById(R.id.EditText01); //登陆mButton.setOnClickListener(new OnClickListener(){public void onClick(View v){Socket socket = null;String message = mEditText.getText().toString() + "\r\n";try{//创建Socketsocket = new Socket("116.29.27.138",5554); //查看本机IP,每次开机都不同//socket=new Socket("192.168.1.110",50000);//向服务器发送消息PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);     out.println(message); //接收来自服务器的消息BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));String msg = br.readLine(); if ( msg != null ){mTextView.setText(msg);}else{mTextView.setText("数据错误!");}//关闭流out.close();br.close();//关闭Socketsocket.close();}catch (Exception e){// TODO: handle exceptionLog.e(DEBUG_TAG, e.toString());}}});}} 服务器端代码:Java代码 package com.yarin.android.Examples_08_04;     import java.io.BufferedReader;  import java.io.BufferedWriter;  import java.io.InputStreamReader;  import java.io.OutputStreamWriter;  import java.io.PrintWriter;  import java.net.ServerSocket;  import java.net.Socket;     public class Server implements Runnable  {      public void run()      {          try         {              //创建ServerSocket              ServerSocket serverSocket = new ServerSocket(5554);              while (true)              {                  //接受客户端请求                  Socket client = serverSocket.accept();                  System.out.println("accept");                  try                 {                      //接收客户端消息                      BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));                      String str = in.readLine();                      System.out.println("read:" + str);                        //向服务器发送消息                      PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(client.getOutputStream())),true);                            out.println("server message");                       //关闭流                      out.close();                      in.close();                  }                  catch (Exception e)                  {                      System.out.println(e.getMessage());                      e.printStackTrace();                  }                  finally                 {                      //关闭                      client.close();                      System.out.println("close");                  }              }          }          catch (Exception e)          {              System.out.println(e.getMessage());          }      }      //main函数,开启服务器      public static void main(String a[])      {          Thread desktopServerThread = new Thread(new Server());          desktopServerThread.start();      }  }


1 0
原创粉丝点击