2011-07-30 8 views
1

Je veux construire un serveur Http qui servira les demandes d'une application de discussion dans android. Parce que je suis vraiment confus ... dans mon code, je dois utiliser des prises de courant? Comment puis-je faire le client pour communiquer avec le serveur? Quel est le code que je dois ajouter dans le serveur pour accepter les demandes du client et y répondre? Le code que j'utilise dans le client est le suivant:Serveur en Java (Http/sockets)

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(); 

S'il vous plaît j'ai vraiment besoin d'une réponse. Je vous remercie!!!

Répondre

1

Sockets (Socket pour client, ServerSocket pour serveur) est la couche de communication la plus élémentaire. Vous avez choisi TCP ou UDP et par dessus, vous devez encoder tout votre protocole.

Il existe également des bibliothèques qui codent des protocoles de niveau supérieur (HTTP, FTP, et même plus haut que SOAP). Si vous utilisez ces bibliothèques, vous n'avez généralement pas besoin de gérer le socket comme le fait la bibliothèque elle-même (dans le serveur, vous spécifiez uniquement le port et éventuellement l'IP à lier, dans le client vous spécifiez l'hôte et le port de connexion). Vous pouvez utiliser différentes combinaisons (par exemple, implémenter votre serveur avec SOAP puis créer et envoyer un message SOAP à partir du client en utilisant Socket) mais le plus simple est d'utiliser la même bibliothèque pour le serveur et le client.

Quel est le meilleur: cela dépend de ce que vous voulez. Les bibliothèques de niveau supérieur sont plus flexibles mais peuvent prendre un certain temps à maîtriser et peuvent avoir plus de frais généraux, des besoins de niveau inférieur que vous gérez tout. S'il n'y a pas de raison plus convaincante, je n'utilise généralement que le protocole HTTP (à la fois de la JVM ou des projets Apache Foundation).

+0

Merci pour votre réponse. Cela me semble plus clair maintenant. Je vous remercie! – anna