Android 模拟器(JAVA)与C++ socket 通讯(IP设置)
来源:互联网 发布:淘宝vr购物体验 编辑:程序博客网 时间:2024/05/19 02:40
原文:http://www.rosoo.net/a/201112/15430.html
android 模拟器使用的IP 地址为"127.0.0.1";使用PC机的端口号,在模拟器TCP连接调试之前必须使用android sdk 使用的工具进行一次端口映射。即使用 Sdk 中的Tools下abd 工具,在cmd 窗口中运行
E://install//android//Android//android-sdk-windwows//tools//adb forward tcp:12581 tcp:31012" 前面目录为android sdk Tools 所在目录。根据本机情况而定。
如果有多个设备(模拟器或者真机)连接在PC上,可以指定设备:
adb -s <serialNumber> <command>
例如:adb -s HTC91245667 forward tcp:12581 tcp:31012
程序C++ 部分编程环境vs 2005 android 采用eclipse 下 android 2.1版本。测试通过。以下是完整源码:
C++ 作为Client端
- // Client.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <Winsock2.h>
- #pragma comment(lib,"ws2_32.lib")
- #define MAX_BUF_SIZE 1024
- #define PORT_NUMBER 12581
- int _tmain(int argc, _TCHAR* argv[])
- {
- WSADATA wSaData;
- WORD dwSockVersion = MAKEWORD(2,2);
- if (0 != WSAStartup(dwSockVersion,&wSaData)) //协商版本号
- {
- printf("Arrange Version Failure");
- return -1;
- }
- SOCKET nSocket;
- nSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //创建TCP socket
- if (INVALID_SOCKET == nSocket)
- {
- printf("invalid socket");
- WSACleanup();
- return -1;
- }
- sockaddr_in sa;
- sa.sin_family = AF_INET;
- sa.sin_addr.s_addr = inet_addr("127.0.0.1");
- sa.sin_port = htons(PORT_NUMBER);
- if ( 0 != connect( nSocket,( const SOCKADDR * )&sa, sizeof(sa) ) )
- return -1;
- char buf[MAX_BUF_SIZE] = {0};
- char tmp[MAX_BUF_SIZE] = {0};
- strcpy(tmp,"this is Client!");
- int nSend = send(nSocket, tmp, (int)strlen(tmp), 0);
- int nRecv = 0;
- nRecv = recv(nSocket, buf, MAX_BUF_SIZE, 0);
- if (nRecv > 0)
- {
- printf("%s/n",buf);
- }
- closesocket(nSocket);
- WSACleanup();
- return 0;
- }
Android 模拟器,JAVA作为Serve端
- package com.Android.SocketTest;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.net.InetAddress;
- import java.net.ServerSocket;
- import java.net.Socket;
- import android.app.Activity;
- import android.os.Bundle;
- public class SocketTest extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- StartAcceptSocket();
- }
- private void StartAcceptSocket()
- {
- try
- {
- short nPort = 31012;
- ServerSocket m_pServerSocket = new ServerSocket(nPort); //初始化socket
- Socket pAccSocket = m_pServerSocket.accept(); //accept 阻塞等待
- new RunningThread(pAccSocket).start(); //新建一个线程进行数据收发
- }catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- public class RunningThread extends Thread
- {
- private Socket msocket = null;
- RunningThread(Socket s)
- {
- this.msocket = s;
- }
- public void run()
- {
- byte [] pRecbyte = new byte[1024];
- String sSend = "hello Client! this is Server";
- byte [] pSendByte = new byte[1024];
- pSendByte = sSend.getBytes();
- while(true)
- {
- try
- {
- DataInputStream sRead = new DataInputStream(msocket.getInputStream()); //读取
- int nRec = sRead.read(pRecbyte);
- if(nRec > 0 )
- {
- //System.out.println("receive client message success!");
- DataOutputStream sWrite = new DataOutputStream(msocket.getOutputStream());
- sWrite.write(pSendByte); //发送
- break;
- }
- }catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- }
- }
- }
0
上一篇:Java socket示例(demo)TCP/IP
下一篇:基于 Android NDK 的学习之旅-----环境搭建[Eclipse ADT集成Cygwin编译]
相关热门文章
- SHTML是什么_SSI有什么用...
- shell中字符串操作
- 卡尔曼滤波的原理说明...
- 关于java中的“错误:找不到或...
- shell中的特殊字符
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- Android 模拟器(JAVA)与C++ socket 通讯(IP设置)
- Android 模拟器(JAVA)与C++ socket 通讯
- Android模拟器与本地服务器的socket通讯
- Java与C++Socket通讯注意
- Java与C++Socket通讯注意
- java与c之间的socket通讯
- java socket与 c socket通讯 java服务端
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- JAVA 与SOCKET通讯
- java命令行编译 运行JAVA类[class]
- Spring起步--helloworld
- 创建COM组件以及COM接口流程
- GCC编译器选项及优化提示
- Java socket示例(demo)TCP/IP
- Android 模拟器(JAVA)与C++ socket 通讯(IP设置)
- 基于 Android NDK 的学习之旅-----环境搭建[Eclipse ADT集成Cygwin编译]
- Android使用contentprovide实现对其他应用数据库的读写
- select 和 epoll的编程实现区别
- select 和 epoll的编程实现区别(2)
- linux非阻塞式socket编程之select()用法
- fd_set 用法 socket
- necessitas
- 进程间通信——管道
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
脸大削骨
削骨后
切下颌骨多少钱
磨骨与削骨的区别
削脸骨需要多少钱
整容磨腮削骨
削骨整形价格
整容削骨怎么做
脸颊削骨
整容削骨过程
削骨瘦脸恢复期
削骨 前后
磨骨磨骨
磨骨与削骨
骨磨
xiagu
磨颧骨后遗症
xiaogu
颧骨整形后遗症真实案例
去颊脂垫
颧骨整形多少钱
磨颧骨需要多少钱
泼剌的读音
剌组词
剌猬紫檀家具价格
剌猬紫檀
刺猬猬吃什么
刺猬紫檀木家具价格
刺猬实习
刺猬 多少钱
哪里有卖刺猬的
刺猬小子
什么动物吃刺猬
哪里有刺猬卖
刺猬哪里有卖的
刺猬 英文
如何吃刺猬
刺猬哪里有卖
刺猬汉斯
金龟刺猬
刺猬的刺