【问题标题】:Communication between Android app and server on computerAndroid 应用程序与计算机上的服务器之间的通信
【发布时间】:2023-03-25 02:40:02
【问题描述】:

我想制作一个可以从计算机上的服务器发送和接收纯文本消息的 Android 应用。我尝试使用套接字,但我无法将消息发送回服务器,只能接收它们。

是否有与计算机通信的内置方式?

谢谢

【问题讨论】:

    标签: java android sockets server


    【解决方案1】:

    就个人而言,我会为此使用Web Service

    Web 服务是用于在之间交换信息的标准 异构类型的应用程序或系统。软件应用 用各种编程语言编写并运行在各种 平台可以使用网络服务通过互联网交换信息 使用http协议。

    使用 Web 服务,您可以编写应用程序使用的方法。这些方法可以像任何其他方法一样返回或接收参数,并使用 SOAP 传输此信息。下面是一个使用 Web 服务的 Android 应用程序示例。在这种情况下,Web 服务将摄氏度转换为华氏度。

    private final String NAMESPACE = "http://www.w3schools.com/webservices/";
    private final String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";
    private final String SOAP_ACTION = "http://www.w3schools.com/webservices/CelsiusToFahrenheit";
    private final String METHOD_NAME = "CelsiusToFahrenheit";
    private String TAG = "PGGURU";
    private static String celcius;
    private static String fahren;
    
    public void getFahrenheit(String celsius) {
        //Create request
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        //Property which holds input parameters
        PropertyInfo celsiusPI = new PropertyInfo();
        //Set Name
        celsiusPI.setName("Celsius");
        //Set Value
        celsiusPI.setValue(celsius);
        //Set dataType
        celsiusPI.setType(double.class);
        //Add the property to request object
        request.addProperty(celsiusPI);
        //Create envelope
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);
        envelope.dotNet = true;
        //Set output SOAP object
        envelope.setOutputSoapObject(request);
        //Create HTTP call object
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
    
        try {
            //Invole web service
            androidHttpTransport.call(SOAP_ACTION, envelope);
            //Get the response
            SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
            //Assign it to fahren static variable
            fahren = response.toString();
    
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    

    在上面的示例中,Web 服务位于地址为http://www.w3schools.com/webservices/tempconvert.asmx 的服务器上。您可以单击该链接在浏览器中使用 Web 服务。

    如前所述,Web 服务可以用各种编程语言编写。 Here's 一个如何使用 C# 编写的示例。此 Web Service 可以使用的语言不仅限于 C#(如上面的 Java 示例)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多