2012-02-24 82 views
-1

我正在研究一个应用程序,我需要建立Android和PC之间的通信以通过Wi-Fi传输一些数据。我可以通过无线网络在两台PC之间进行通信。所以PC端的代码已经准备就绪。我需要一个从Android端使用Wifi的参考。类似于蓝牙聊天的内容很有帮助。我能够扫描Android中存在的Wifi网络,但无法继续进行。 干杯Android和PC之间的Wifi聊天

+1

你的问题太模糊。你想在android和PC之间转换什么? PC运行什么操作系统?你需要一个可靠的(TCP)连接还是一个不可靠但快速的(UDP)连接?很难从“PC端”获取代码并立即将其用于Android,即使它能够识别出“没问题,这个连接来自手机”,也需要进行一些更改。 – Dororo 2012-02-24 13:08:28

+0

雅我需要一个TCP连接。我已经使用TCP建立了PC和蓝牙之间的连接。而来自PC端的代码是一个等待客户端连接的服务器代码。我想把我的android作为客户端来工作。我正在传输简单协议和图像等数据。 PC中的操作系统是windows。 – ragz 2012-02-24 13:32:37

回答

0

不知道你想达到什么样的东西很难做到更具体,但是这个片段会收到一个短暂的数据突发。

 DatagramSocket serverSocket = new DatagramSocket(PORTNUMBER); 
     byte[] receiveData = new byte[50]; 

     DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); 
     serverSocket.setSoTimeout(5000); 
     serverSocket.receive(receivePacket); 
        serverSocket.close(); 
1

这一个接收文件

private String ReceiveFile() { 

    try { 
     ServerSocket socket = new ServerSocket(port); 
     socket.setSoTimeout(5000); 
     Socket os = null; 

     try { 
      os = socket.accept(); 
     } catch (SocketTimeoutException t) { 
      if (!socket.isClosed()) socket.close(); 
      return "TIMEOUT"; 
     } 

     InputStream bos = os.getInputStream(); 
     FileOutputStream fos = new FileOutputStream(FILENAME); 
     DataOutputStream bw = new DataOutputStream(fos); 

     int Total = 0; 
     byte[] buffer = new byte[4096]; 
     int read; 
     while (true) { 
      read = bos.read(buffer); 
      if (read <= 0) break; 
      bw.write(buffer, 0, read); 
      Total = Total + read; 
     } 

     if (!socket.isClosed()) socket.close(); 
     return "SUCCESS"; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return "FAILURE"; 
    } 
}