织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>嵌入式开发>Android>

android模拟机与PC的简单通信例子

jackyhwei 发布于 2011-12-07 15:46 点击:次 
这个是旨在让Android模拟器与PC间建立TCP连接,并进行通讯。若是UDP的话,可以参考另一篇文章:http://www.rosoo.net/a/201112/15425.html
TAG:

android访问本机关键是IP为10.0.2.2,端口号选择既不能太小也不能太大

android客户端:

需开权限 <uses-permission android:name="android.permission.INTERNET" />

界面就加个button,好控制观察

import java.io.*;
import java.net.*;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class SocketActivity extends Activity {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findViews();
        setListeners();
    }
 private Button button_send;
    private TextView view_suggest;
 private void findViews() {
     button_send = (Button) findViewById(R.id.send);
        view_suggest = (TextView) findViewById(R.id.message);
 }
 private void setListeners() {
  button_send.setOnClickListener(send); 
 }
 private Button.OnClickListener send = new Button.OnClickListener() {
  ///按下Button后的动作
     public void onClick(View v) {
         view_suggest.setText("start");
         int port=7100;
         try{
          Socket sc = new Socket("10.0.2.2",port);//创建本地socket连接
          OutputStream out = sc.getOutputStream();
          DataOutputStream dout = new DataOutputStream(out);
            //获取输出流,并创建相应的数据输出流
          dout.writeUTF("Tom");  //将tom写入输出流
         InputStream in = sc.getInputStream();
          DataInputStream din = new DataInputStream(in);
            //获取输入流,并创建相应的数据输入流
          String str = din.readUTF();
          view_suggest.setText(str);
          in.close();
          out.close();
          sc.close();
         }
         catch(UnknownHostException e){view_suggest.setText("error");}
         catch(IOException e){view_suggest.setText("error");}
        }
 };
}

PC服务端:

import java.net.*;
import java.io.*;
public class SocketAppServer{
 public static void main(String args[]){
  ServerSocket ss = null;
  int port = 7100;
  String hello = "From Server:Hello World!";
  try{
   ss = new ServerSocket(port);
     //建立服务器Socket连接,其侦听端口为port,port与客户端相同
  }
  catch(IOException e){
   System.out.println(e);//若端口已被占用,则抛出异常
   System.exit(1);
  }
  while(true){
  try{
   System.out.println("正在等待连接端口port=" + port + "...");
   Socket cs = ss.accept();
   InputStream in = cs.getInputStream();
   DataInputStream din = new DataInputStream(in);
    //获取输入流,并创建相应的数据输入流
   String name = din.readUTF();
   OutputStream out = cs.getOutputStream();
   DataOutputStream dout = new DataOutputStream(out);
    //获取输出流,并创建相应的数据输出流
   dout.writeUTF(hello+"Your name:" + name);//将字符串写入输出流
   System.out.println("已成功连接端口port=" + port);
   System.out.println("=========================================");
   in.close();
   out.close();
   cs.close();
  
  catch(IOException e){
   System.out.println(e);//若端口已被占用,则抛出异常
    
  }
 }
}

android模拟机与PC的简单通信例子

(jmu84xu)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201112/15424.html]
本文出处:blog.sina.com.cn/jmu84xu 作者:jmu84xu 原文
顶一下
(2)
66.7%
踩一下
(1)
33.3%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容