收藏 分销(赏)

android-x86模拟器及PC相互通信(socket).docx

上传人:仙人****88 文档编号:7202700 上传时间:2024-12-27 格式:DOCX 页数:4 大小:44.48KB 下载积分:10 金币
下载 相关 举报
android-x86模拟器及PC相互通信(socket).docx_第1页
第1页 / 共4页
android-x86模拟器及PC相互通信(socket).docx_第2页
第2页 / 共4页


点击查看更多>>
资源描述
android 模拟器和PC相互通信(IP +端口+ socket) 实现方法:android socket ① 服务程序运行在PC端 ② 客户端程序运行在android模拟器 实现形式:由android 模拟器向服务程序发出消息,然后服务程序会送消息至模拟器。 注意要点: 一、 服务程序在PC端,需要指定电脑的端口,以提供数据访问的渠道。 二、 客户端程序需要同样的端口 以及 PC的ip地址进行socket联络 三、 数据通信用进程方式实现,可以支持多个客户端访问 四、 代码层面: 1、 AndroidManifest.xml需要添加 <uses-permission android:name="android.permission.INTERNET" /> 以提供网络访问权限支持 2、 部分模拟器版本和android-SDK版本不匹配,此时去掉AndroidManifest.xml中的 <uses-sdk android:minSdkVersion="15" />就不会报错。 3、 PC的IP为实际上外网的IP,即,IPV4。通过命令行cmd,ipconfig查询即可。 代码: 服务端:Java项目,运行于PC: Package: com.android.server name:ServerThread 客户端:android项目,运行于android模拟器 package :com.android.client name:MyClientActivity 代码: 服务程序代码: package com.android.server; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import .ServerSocket; import .Socket; public class PCServer { public static void main(String a[]) { new ServerThread(5554).start(); } } class ServerThread extends Thread { private int Port; private ServerSocket serversocket = null; private Socket client; ServerThread(int port) { Port = port; } public void run() { try { serversocket = new ServerSocket(Port); while (true) { client = serversocket.accept(); System.out.println("server 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("MSG from server:Your message(" + str + ")has been successfully sent!"); // 关闭输入输出流 out.close(); in.close(); } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } finally { // 关闭客户端 client.close(); System.out.println("server close"); } } } catch (Exception e) { System.out.println(e.getMessage()); } } } 客户端程序代码: package com.android.client; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import .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 MyClientActivity extends Activity { private final String DEBUG_TAG = "Activity01"; private static String IpAddress = "10.141.31.85"; private static int Port = 5554; 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) { sendMsg(); } }); } public void sendMsg() { Socket socket = null; String message = mEditText.getText().toString() + "\r\n"; try { socket = new Socket(IpAddress, Port); // 创建Socket PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())), true); BufferedReader in = new BufferedReader(new InputStreamReader( socket.getInputStream())); out.println(message); // 向服务器发送消息 String msg = in.readLine(); // 接收来自服务器的消息 if (msg != null) mTextView.setText(msg); else mTextView.setText("数据错误!"); // 关闭流 out.close(); in.close(); // 关闭Socket socket.close(); } catch (Exception e) { // TODO: handle exception Log.e(DEBUG_TAG, e.toString()); } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服