当前位置:  编程技术>移动开发

Android 模拟器(JAVA)与C++ socket 通讯 分享

    来源: 互联网  发布时间:2014-10-16

    本文导语:  C++ 作为Client端view plaincopy to clipboardprint? 代码如下:// Client.cpp : Defines the entry point for the console application.     //     #include "stdafx.h"     #include      #pragma comment(lib,"ws2_32.lib")     #define  MAX_BUF_SIZE 1024     #define  PORT_NUM...

C++ 作为Client端
view plaincopy to clipboardprint?
代码如下:

// Client.cpp : Defines the entry point for the console application.    
//    
#include "stdafx.h"    
#include     
#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("%sn",buf);    
    }    
    closesocket(nSocket);    
    WSACleanup();    
    return 0;    


Android 模拟器,JAVA作为Serve端
view plaincopy to clipboardprint?
代码如下:

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(); 
                } 
            } 
        } 
    } 


 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 所在目录。根据本机情况而定。

    
 
 

您可能感兴趣的文章:

  • android杂记:C++文件的添加log方法分享
  • android开发教程之用命令启动android模拟器并设置其内存大小
  • Intel HAXM为Android 模拟器加速解决模拟器运行慢的问题
  • Android 模拟器 Genymotion
  • Android启动模拟器报错解决方法
  • android模拟器能够上网,但无法ping通本地主机的ip和外网的ip
  • 在Android 模拟器上安装和卸载APK包的方法
  • 在Android模拟器上模拟GPS功能总是null的解决方法
  • 配置一个好用的Android模拟器让你不再对模拟器那么失望
  • 将文件放到Android模拟器的SD卡中的两种解决方法
  • Android模拟器中窗口截图存成文件实现思路及代码
  • Android模拟器对应的电脑快捷键说明
  • WAC启动Android模拟器 transfer error: Read-only file system错误解决方法
  • android模拟器开发和测试nfc应用实例详解
  • 二个android模拟器互发短信程序演示
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Android访问与手机通讯相关类的介绍
  • Android的VoIP安全通讯 Discretio
  • Android手机无线电电传通讯 TorProxy
  • Android即时通讯 YiIM
  • android使用handler ui线程和子线程通讯更新ui示例
  • Android 即时通讯 YiIM V4
  • Android后台线程和UI线程通讯实例
  • Android通讯录开发之删除功能的实现方法
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android及andriod无线网络Wifi开发的几点注意事项
  • Android 图标库 Android GraphView
  • Android 2.3 下StrictMode介绍
  • 轻量级Android开发工具 Android Tools
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle
  • Android的UI工具包 android-ui-utils


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3