- 浏览: 145069 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ZHxin:
但是自己申请的key不能使用,使用两种方法得到的SHA1值不同 ...
解决百度地图SDK无法显示地图的问题 -
wang_2011_ying:
laoyun_1 写道哈哈,你终于又上线了。。。。现在在做an ...
在RedHat AS4 下面安装gcc 4.3.2 -
laoyun_1:
哈哈,你终于又上线了。。。。现在在做android开发,还是做 ...
在RedHat AS4 下面安装gcc 4.3.2 -
lovezehui:
加油~~哈哈
还有两个月.. -
wang_2011_ying:
花已梦 写道没提到下载我已经把相关的文件上传了,你可以直接下载 ...
解决firefox下百度文库打不开,无法播放视频等问题
1、创建一个模拟器(API level小于等于10,当时选择了很多模拟器,只有模拟器的android版本较低时,可以测试通,具体原因也不知道为什么),建立模拟器的截图如下:
2、服务器端代码如下:
3、客户端代码如下:
4、重点:在Mainfest文件中添加网络访问权限
5、测试结果截图如下
2、服务器端代码如下:
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 服务器端 * @author 王颖 */ public class MultiThreadServer { private static int port = 5000;//端口号 private ServerSocket serverSocket; private ExecutorService executorService; //线程池 private final int POOL_SIZE = 10; //单个CPU线程池大小 public MultiThreadServer(){ try { serverSocket = new ServerSocket(port); //Runtime的availableProcessor()返回当前系统的CPU个数 executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE); System.out.println("服务器启动...."); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void service(){ while(true){ Socket socket = null; try { socket = serverSocket.accept(); executorService.execute(new Handler(socket));//在未来的某个时间执行给定命令 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { MultiThreadServer multi = new MultiThreadServer(); multi.service(); } } class Handler implements Runnable{ private Socket socket; public Handler(Socket socket){ this.socket = socket; } public BufferedReader getReader(Socket socket){ InputStream socketIn = null; try { socketIn = socket.getInputStream(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return new BufferedReader(new InputStreamReader(socketIn)); } public BufferedWriter getWriter(Socket socket){ OutputStream socketOut = null; try { socketOut = socket.getOutputStream(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return new BufferedWriter(new OutputStreamWriter(socketOut)); } public void run(){ BufferedReader br = getReader(socket); BufferedWriter bw = getWriter(socket); String msg = ""; boolean flag = false;//读 try { System.out.println("等待客户端发来的信息....."); while((msg = br.readLine()) != null){ System.out.println(msg); flag = true; } if(!flag){ bw.write("服务器发来的信息"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try{ if(br != null){ br.close(); } if(bw != null){ bw.close(); } if(socket != null){ socket.close(); } }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
3、客户端代码如下:
import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; /** * 客户端 * @author 王颖 * */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //响应确认按钮事件 Button sure = (Button)findViewById(R.id.sure); sure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub EditText port_Text = (EditText)findViewById(R.id.port_info); String port = port_Text.getText().toString(); Toast.makeText(MainActivity.this, port, Toast.LENGTH_SHORT).show(); if(sendMsg("10.0.2.2",port,"info from AVD")){ // if(sendMsg("10.20.61.61",port,"info from AVD")){//也可 Toast.makeText(MainActivity.this, "发送成功!", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this, "发送失败", Toast.LENGTH_SHORT).show(); } } }); } /* *向服务器发送信息 */ public boolean sendMsg(String ip, String port , String msg){ try { int port1 = Integer.parseInt(port); Toast.makeText(MainActivity.this, "socket通信的端口号:" + port1, Toast.LENGTH_SHORT).show(); Socket socket= new Socket(ip,port1); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); // System.out.println(""); bw.write(msg); bw.newLine();//防止阻塞 bw.flush(); bw.close(); socket.close(); return true; } catch(UnknownHostException e) { Log.e("UnknownHostException", "来自客户端信息"); e.printStackTrace(); return false; } catch (IOException e) { Log.e("IOException", "来自客户端信息"); e.printStackTrace(); return false; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
4、重点:在Mainfest文件中添加网络访问权限
<uses-permission android:name="android.permission.INTERNET" > </uses-permission>
5、测试结果截图如下
发表评论
-
Android APK升级代码编写心得
2014-06-24 15:38 786最近两周一直在做Android APP在线升级,主要学习的内容 ... -
socket通讯输入流输出流阻塞解决方案
2014-01-07 13:39 1456服务器端读入流部分代码: System.out.printl ... -
AutoCompleteTextView 自动提示输入
2013-10-21 10:24 595AutoCompleteTextView是一个可编辑的文本视图 ... -
android 获取wifi mac 地址的代码
2013-10-10 14:03 1123public String macAddress = &quo ... -
Android中定时执行任务的3种实现方法
2013-10-10 10:43 634在Android开发中,定时执行任务的3种实现方法: 一、采 ... -
Android读取文件方法总结
2013-10-09 16:23 852首先,说一句android真是 ... -
解决百度地图SDK无法显示地图的问题
2013-09-09 17:05 1949之前一直在研究百度定位问题,从官网上下载了Android SD ... -
Android权限大全
2013-09-05 14:38 651访问登记属性android.permission.ACCESS ... -
GPS数据解析以及百度地图显示定点
2013-09-05 09:38 880最近,应组长要求,开始重新接触Android,待续。 -
Handler 消息传递机制介绍
2013-08-29 17:27 893好久没有碰Android了,现在由于项目需要,重拾Androi ... -
adb命令总结
2012-08-06 16:00 3041adb(Android Debug Bridge)是Andro ... -
解决Android AVD无法启动
2012-07-30 16:27 832也不知怎么回事儿,之前AVD还可以正常启动,有段时间没有弄An ... -
LayoutParams和LayoutInflater理解
2012-04-22 22:04 2545LayoutParams继承于Android.view.Vie ... -
Android工程中R.java文件突然消失
2012-04-19 20:38 1619今天试着写一个小的Android工程,在编写配置布局文件时,有 ... -
Android 初步学习总结-Activity介绍和UI组件
2012-04-19 09:09 1580首先会查阅Android API, ... -
Android应用程序结构介绍
2012-04-18 17:10 6702首先介绍一下Android体系 ... -
Activity not started
2012-04-18 15:16 1814在运行Android程序时,会出现无法运行,提示如下: Act ... -
Android API核心开发包介绍
2012-04-18 10:05 967摘抄(为了有个大致的了解~~): 下面介绍一下Android ... -
Andriod开发前的准备工作
2012-04-18 08:50 657首先是安装JDK、Eclipse、Android SDK以及A ... -
开始学习Android
2012-04-17 10:43 605今天在徐同学的帮助下,开始接触Android,Android ...
相关推荐
② 客户端程序运行在android模拟器 实现形式:由android 模拟器向服务程序发出消息,然后服务程序会送消息至模拟器。 注意要点: 一、 服务程序在PC端,需要指定电脑的端口,以提供数据访问的渠道。 二、 客户端程序...
android socket编程实现同一台PC两个模拟器间的通信 包含server和client两个工程,外加一个说明文档,绝对可用 希望对大家有用
这是一个demo,实现了安卓客服端和struts后台的交互,用json传输数据,是一个简单的例子,struts+hibernate+spring+Android;非常适合新手入门。
以pc机做为服务器,android的模拟器作为客户端建立TCP通信!
很实用的TCP客户端和服务器端使用工具,可以模拟客户端和服务器端的通信,内含演示程序和源代码
Onvif 模拟器包括服务器端和客户端,不需要下载wsdl,支持自动发现,支持token鉴权。 依赖项少,只需要安装gsoap即可。能自动将wsdl转换成cpp代码。编译器需要支持c++11, gsoap生成的onvif 代码是c++版本的。能够自动...
Android tcp socket通信封装及实例 1、模拟器上和电脑上开的sokit服务端通信测试通过 2、下载sokit当服务端
包含客户端与服务器,经测试可用。希望对大家有帮助。
模拟Socket通讯服务端,实现网络通讯社数据的接收,根据接收数据判断处理
Android通过socket套接字实现网络连接,通过ip地址和ip端口实现访问服务器,从而实现客户端和服务器的连接,然后实现两者数据的互连
此文档介绍了Android模拟器在一台机器上的通信,或者PC与Android平台通信的方法。
opcua服务器模拟器+opcua客户端工具
Android 模拟器永久root工具------包含 (android for img.rar、Android SU文件更新包.zip、RootExplorer.apkSuperuser.apk) 1、用android for img.rar里的android for img.exe打开 E:\SDK\platforms\android-8\...
两个模拟器之间 通过socket通信进行数据传输
Android模拟器躲避的检测与应对,介绍模拟器检测的主要方法
android模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Androidandroid模拟器java Android...
Android模拟器入门Android模拟器入门Android模拟器入门Android模拟器入门Android模拟器入门Android模拟器入门Android模拟器入门
android客户端访问服务器端Web Service所需的ksoap包, 至于怎么实现访问,可以看:http://blog.csdn.net/fwzkj
介绍了Android模拟器上网设置的四种方法,其中代理上网的方法,已经测试过,是非常好用的.