2011-07-30 14 views
1

私はアンドロイドでチャットアプリケーションのリクエストを処理するHttpサーバーを構築したいと考えています。私は本当に混乱しているので...私のコードでソケットを使用する必要がありますか?クライアントとサーバーとの通信をどのようにすることができますか?クライアントからの要求を受け入れて応答するために、サーバーに追加する必要があるコードはどれですか?クライアントで使用するコードは次のとおりです。Java(Http /ソケット)のサーバー

DefaultHttpClient client = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://localhost:80"); 
List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>(); 
nvps.add(new BasicNameValuePair("username", username1)); 
nvps.add(new BasicNameValuePair("password", password1)); 
try { 
    UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(nvps, HTTP.UTF_8); 
    httppost.setEntity(p_entity); 

      //Execute HTTP Post Request 
      HttpResponse response = client.execute(httppost); 
      Log.v(TAG,"something"); 
      Log.v(TAG, response.getStatusLine().toString()); 
      HttpEntity responseEntity = response.getEntity(); 

本当に答えが必要ですか。ありがとうございました!!!

答えて

1

ソケット(クライアント用のソケット、サーバー用のServerSocket)は、通信の最も基本的なレイヤーです。 TCPまたはUDPを選択した上で、すべてのプロトコルをエンコードする必要があります。

さらに高レベルのプロトコル(HTTP、FTP、さらにはSOAPとしての高さ)をエンコードするライブラリもあります。これらのライブラリを使用する場合は、通常、ライブラリ自体で行われるようにソケットを管理する必要はありません(サーバーでは、接続するホストとポートを指定するクライアントでは、ポートとオプションのIPのみをバインドするよう指定します)。

さまざまな組み合わせを使用できます(たとえば、SOAPを使用してサーバーを実装してから、Socketを使用してクライアントからSOAPメッセージを作成して送信する)が、最も簡単な方法はサーバーとクライアントの両方に同じライブラリを使用することです。

どちらが良いか:あなたが望むものによって異なります。上位レベルのライブラリは柔軟性がありますが、マスターに時間がかかる場合があり、オーバーヘッドが増え、すべてを管理する必要性が低くなります。説得力のある理由がなければ、通常はHTTPプロトコル(JVMまたはApache Foundationプロジェクトの両方)を使用します。

+0

あなたの答えをありがとう。今私にとってははっきりしているようです。ありがとうございました! – anna

関連する問題