在wifi局域网下,手机可以和电脑通过socket通信。手机做服务端,电脑做客户端;也可以反过来,电脑做服务端,手机做客户端。
下面介绍的是手机作为服务端,电脑使用MFC编程作为客户端,原理是,手机建立一个ServerSocket,并获取自己的ip地址和端口port;然后电脑通过socket连接手机的ip:port。
核心代码如下:
具体下载目录在 /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代码如下