注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

liangxh2008的博客

 
 
 

日志

 
 

android 模拟器和PC用sockets通讯  

2010-03-25 16:46:55|  分类: pc sync |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://qq361119908.javaeye.com/blog/605929

文章分类:移动开发 之前一直会用sockets来实现emulator和PC进行通讯,卡了几天,最后请教其他人终于可以连接了。  错误原因是在IP和端口,IP要用本机IP(在CMD输入ipconfig,注意:每次开机本机IP都不同,ADSL是动态IP),端口用 emulator的名称,5554或5556.java sever文件要另外建java工程运行,在android工程运行不了java(run application)
客户端代码:
Java代码
  1. package com.yarin.android.Examples_08_04;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.BufferedWriter;  
  5. import java.io.InputStreamReader;  
  6. import java.io.OutputStreamWriter;  
  7. import java.io.PrintWriter;  
  8. import java.net.InetAddress;  
  9. import java.net.Socket;  
  10.   
  11. import android.app.Activity;  
  12. import android.os.Bundle;  
  13. import android.util.Log;  
  14. import android.view.View;  
  15. import android.view.View.OnClickListener;  
  16. import android.widget.Button;  
  17. import android.widget.EditText;  
  18. import android.widget.TextView;  
  19.   
  20. public class Activity01 extends Activity  
  21. {  
  22.     private final String        DEBUG_TAG   = "Activity01";  
  23.       
  24.     private TextView    mTextView=null;  
  25.     private EditText    mEditText=null;  
  26.     private Button      mButton=null;  
  27.     /** Called when the activity is first created. */  
  28.     @Override  
  29.     public void onCreate(Bundle savedInstanceState)  
  30.     {  
  31.         super.onCreate(savedInstanceState);  
  32.         setContentView(R.layout.main);  
  33.           
  34.         mButton = (Button)findViewById(R.id.Button01);  
  35.         mTextView=(TextView)findViewById(R.id.TextView01);  
  36.         mEditText=(EditText)findViewById(R.id.EditText01);  
  37.           
  38.         //登陆  
  39.         mButton.setOnClickListener(new OnClickListener()  
  40.         {  
  41.             public void onClick(View v)  
  42.             {  
  43.                 Socket socket = null;  
  44.                 String message = mEditText.getText().toString() + "\r\n";   
  45.                 try   
  46.                 {     
  47.                     //创建Socket  
  48.                     socket = new Socket("116.29.27.138",5554); //查看本机IP,每次开机都不同  
  49.                     //socket=new Socket("192.168.1.110",50000);  
  50.                     //向服务器发送消息  
  51.                     PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);        
  52.                     out.println(message);   
  53.                       
  54.                     //接收来自服务器的消息  
  55.                     BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));   
  56.                     String msg = br.readLine();   
  57.                       
  58.                     if ( msg != null )  
  59.                     {  
  60.                         mTextView.setText(msg);  
  61.                     }  
  62.                     else  
  63.                     {  
  64.                         mTextView.setText("数据错误!");  
  65.                     }  
  66.                     //关闭流  
  67.                     out.close();  
  68.                     br.close();  
  69.                     //关闭Socket  
  70.                     socket.close();   
  71.                 }  
  72.                 catch (Exception e)   
  73.                 {  
  74.                     // TODO: handle exception  
  75.                     Log.e(DEBUG_TAG, e.toString());  
  76.                 }  
  77.             }  
  78.         });  
  79.     }  
  80. }  
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;   /** Called when the activity is first created. */   @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());      }     }    });   }  }  

服务器端代码:
Java代码
  1. package com.yarin.android.Examples_08_04;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.BufferedWriter;  
  5. import java.io.InputStreamReader;  
  6. import java.io.OutputStreamWriter;  
  7. import java.io.PrintWriter;  
  8. import java.net.ServerSocket;  
  9. import java.net.Socket;  
  10.   
  11. public class Server implements Runnable  
  12. {  
  13.     public void run()  
  14.     {  
  15.         try  
  16.         {  
  17.             //创建ServerSocket  
  18.             ServerSocket serverSocket = new ServerSocket(5554);  
  19.             while (true)  
  20.             {  
  21.                 //接受客户端请求  
  22.                 Socket client = serverSocket.accept();  
  23.                 System.out.println("accept");  
  24.                 try  
  25.                 {  
  26.                     //接收客户端消息  
  27.                     BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));  
  28.                     String str = in.readLine();  
  29.                     System.out.println("read:" + str);    
  30.                     //向服务器发送消息  
  31.                     PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(client.getOutputStream())),true);        
  32.                     out.println("server message");   
  33.                     //关闭流  
  34.                     out.close();  
  35.                     in.close();  
  36.                 }  
  37.                 catch (Exception e)  
  38.                 {  
  39.                     System.out.println(e.getMessage());  
  40.                     e.printStackTrace();  
  41.                 }  
  42.                 finally  
  43.                 {  
  44.                     //关闭  
  45.                     client.close();  
  46.                     System.out.println("close");  
  47.                 }  
  48.             }  
  49.         }  
  50.         catch (Exception e)  
  51.         {  
  52.             System.out.println(e.getMessage());  
  53.         }  
  54.     }  
  55.     //main函数,开启服务器  
  56.     public static void main(String a[])  
  57.     {  
  58.         Thread desktopServerThread = new Thread(new Server());  
  59.         desktopServerThread.start();  
  60.     }  

  评论这张
 
阅读(1319)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017