Android在wifi下手机与电脑的socket通信

在wifi局域网下,手机可以和电脑通过socket通信。手机做服务端,电脑做客户端;也可以反过来,电脑做服务端,手机做客户端。

下面介绍的是手机作为服务端,电脑使用MFC编程作为客户端,原理是,手机建立一个ServerSocket,并获取自己的ip地址和端口port;然后电脑通过socket连接手机的ip:port。

Android在wifi下手机与电脑的socket通信

Android在wifi下手机与电脑的socket通信

核心代码如下:

免费下载地址在

用户名与密码都是

具体下载目录在 /2012年资料/2月/8日/Android在wifi下手机与电脑的socket通信/

手机建立socketServer代码

[html]

private ServerSocket serverSocket = null;   private Runnable    mcreateRunnable = new Runnable()    {       public void run()       {                          try {               serverSocket = new ServerSocket(0);//系统分配端口                                getLocalIpAddress();//获得手机的ip地址                           //方法用于等待客服连接                            mSocketServer = serverSocket.accept();                                                   //接受客服端数据BufferedReader对象                           mBufferedReaderServer = new BufferedReader(new InputStreamReader(mSocketServer.getInputStream()));                           //给客服端发送数据                           mPrintWriterServer = new PrintWriter(mSocketServer.getOutputStream(),true);                                  } catch (IOException e) {               // TODO Auto-generated catch block               e.printStackTrace();           }       }   };  

手机上获取的ip地址代码

[html]

public String getLocalIpAddress()    {       try {           for (Enumeration<NetworkInterface> en=NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)            {               NetworkInterface intf = en.nextElement();               for (Enumeration<InetAddress> enumIpAddr=intf.getInetAddresses();enumIpAddr.hasMoreElements();)                {                   InetAddress inetAddress = enumIpAddr.nextElement();                   //if (!inetAddress.isLoopbackAddress())                    {                       //if(inetAddress.isSiteLocalAddress())                       {                           String ip = "请连接IP:"+inetAddress.getHostAddress()+":"                                   + serverSocket.getLocalPort()+ "\n";                           }                   }               }           }       }        catch (SocketException ex) {           ex.printStackTrace();   }   }  

电脑上使用的是MFC编程,socket代码如下

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyzpjw.html