2017-02-02 10 views
1

「ゲームサーバー」を作成したい - サーバーは複数のゲーム(クライアント)を管理し、クライアントアプリケーションとの間でデータを送受信し、DBに格納することができます。 私はAndroidを初めて使用しているので、この基本的なサーバープログラムを作成する際に問題が発生しています。JSONを使用してWEB SERVERを作成する方法

私がすでに行ったこと:ゲーム(クライアント)用のアンドロイドアプリです。クライアントにはJSONのサーバーにユーザーの詳細を送信する登録ページがあります(まだありません)。 私の質問:私はRESTfulなWebservice-私が見つけたすべてを使用して、サーバーのいずれかの例を見つけることができませんでした

  1. は、クライアント側の例ではなく、サーバーのです。 JSONを使用して複数のクライアントとデータを送受信するサーバーのコード例を教えてください。または少なくともそのようなサーバーを起動して構築するための良い方向はありますか?
  2. Android Studioを使用してサーバーを構築する必要がありますか?

P.私の質問は、サーバー側とクライアントとの間の接続(サーバーとデータベース間の接続ではなく)に関することです。

ありがとうございました。

クライアント:これに対処する

public class JsonToServer { 

String name, email, password; 
Context registerActivityContext; 


public JsonToServer(String nameString, String emailString, String passwordString, Context context) { 
    this.name = nameString; 
    this.email = emailString; 
    this.password = passwordString; 
    this.registerActivityContext = context; 
    new SendPostRequest().execute(); 

} 

public class SendPostRequest extends AsyncTask<String, Void, String> { 

    protected void onPreExecute(){} 

    protected String doInBackground(String... arg0) { 

     try { 
      Log.d("params123","before connecting"); 
      URL url = new URL(""); // SERVER path 
      Log.d("params123","after connecting"); 
      JSONObject postDataParams = new JSONObject(); 
      Log.d("params123","json created"); 
      postDataParams.put("name", name); 
      postDataParams.put("password", password); 
      postDataParams.put("email", email); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.setReadTimeout(15000 /* milliseconds */); 
      conn.setConnectTimeout(15000 /* milliseconds */); 
      conn.setRequestMethod("POST"); 
      conn.setDoInput(true); 
      conn.setDoOutput(true); 
      OutputStream os = conn.getOutputStream(); 
      BufferedWriter writer = new BufferedWriter(
      new OutputStreamWriter(os, "UTF-8")); 
      writer.write(getPostDataString(postDataParams)); 
      writer.flush(); 
      writer.close(); 
      os.close(); 
      int responseCode=conn.getResponseCode(); 

      if (responseCode == HttpsURLConnection.HTTP_OK) { 

       Log.d("params123","httpOK"); 
       BufferedReader in=new BufferedReader(new 
         InputStreamReader(
         conn.getInputStream())); 
       StringBuffer sb = new StringBuffer(""); 
       String line=""; 

       while((line = in.readLine()) != null) { 

        sb.append(line); 
        break; 
       } 

       in.close(); 
       return sb.toString(); 

      } 
      else { 
       return new String("false : "+responseCode); 
      } 
     } 
     catch(Exception e){ 
      return new String("Exception: " + e.getMessage()); 
     } 

    } 

    @Override 
    protected void onPostExecute(String result) { 

     Toast.makeText(registerActivityContext, result, 
       Toast.LENGTH_LONG).show(); 
    } 



} 

public String getPostDataString(JSONObject params) throws Exception { 

    StringBuilder result = new StringBuilder(); 
    boolean first = true; 

    Iterator<String> itr = params.keys(); 

    while(itr.hasNext()){ 

     String key= itr.next(); 
     Object value = params.get(key); 

     if (first) 
      first = false; 
     else 
      result.append("&"); 

     result.append(URLEncoder.encode(key, "UTF-8")); 
     result.append("="); 
     result.append(URLEncoder.encode(value.toString(), "UTF-8")); 


    } 
    return result.toString(); 
} 

}

答えて

1

最良の方法は、Webサーバとの通信にバレーボールのライブラリを使用することです。 Webサーバーに関しては、Webサーバーのための多くのオプションがあります。

  1. Androidスタジオは、実際にはアンドロイドデバイス用のアプリケーションを作成するように設計されています。別のIDE /テキストエディタを使用して、Webサーバーのコードを記述したいと思うでしょう。テキストエディタが行います。個人的には、atom.ioのエディタを使用する方が好きですが、それはあなた次第です。代わりにNetbeans、PHP Storm、Bracketsなどがあります。PHPを使用している場合は、LAMP(Linux、Apache、MySQL、PHP)またはWAMP(Windows代替)サーバーの設定を検討することをお勧めします。 javascriptを使用している場合は、nodejsサーバーを設定します。
+0

私はちょっと混乱していますが、NetBeansをサーバーに使用していますが、クライアントから収入JSONを読み取るwebServiceの例はまだ見つかりませんでした。添付)。 – SHAI

+0

[ここ](http://stackoverflow.com/questions/18866571/receive-json-post-with-php)は、PHPの例です。ここでは、POSTを使用してWebサービスに送信されたjsonデータを読み取る方法について説明します。別の言語を使用している場合は、私に知らせてください。 –

+0

私はGsonライブラリを使ってNetBeans上でJavaを使用しています。 – SHAI

関連する問題