Android编程学习:http + socket 通信例程


开发板phpinfo部分信息:

[html]
  1. System    
  2.     Linux ShiGuang 2.6.32.2-FriendlyARM #2 Fri Aug 19 10:45:24 CST 2011 armv4tl    
  3. Configure Command    
  4.     './configure' '--prefix=/usr/local/php_arm' '--host=arm-linux' '--target=arm-linux' '--enable-sockets'    
  5. DOCUMENT_ROOT    
  6.     /usr/local/apache_arm/htdocs    
  7. HTTP_HOST    
  8.     192.168.1.120  

post_datas.php

[php]
  1. <span style="font-size:18px;"><?php    
  2. @header("content-type:text/html; charset=utf-8");  
  3. error_reporting(E_ALL);    
  4. set_time_limit(0);   
  5.   
  6. $user = $_REQUEST['user'];  
  7. $passed = $_REQUEST['passwd'];  
  8. $para = $_REQUEST['para'];  
  9.    
  10. $service_port = 9090;    
  11. $address = "192.168.1.97";    
  12.     
  13. $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);  
  14. if ($socket < 0)    
  15. {    
  16.   echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";    
  17. }    
  18.   
  19. $result = socket_connect($socket$address$service_port);  
  20. if ($result < 0)    
  21. {    
  22.   echo "socket_connect()  failed: reason: " . socket_strerror($result) . "\n";    
  23. }    
  24.   
  25. $in = $user . $passed . $para;   
  26.   
  27. $result = socket_write($socket$instrlen($in)) ;   
  28. if(!$result)    
  29. {    
  30.   echo "socket_write() failed: reason: " . socket_strerror($socket) . "\n";    
  31. }   
  32.   
  33. while($out = socket_read($socket,256))  
  34. {  
  35.   echo $out;  
  36.   break;  
  37. }  
  38.   
  39. socket_close($socket);   
  40. ?>  
  41. </span>  
Mini2440Activity.java

[java]
  1. package sg131971.mini2440;  
  2.   
  3. import java.io.IOException;  
  4. import java.util.ArrayList;  
  5. import java.util.List;  
  6.   
  7. import org.apache.http.HttpResponse;  
  8. import org.apache.http.NameValuePair;  
  9. import org.apache.http.client.ClientProtocolException;  
  10. import org.apache.http.client.HttpClient;  
  11. import org.apache.http.client.entity.UrlEncodedFormEntity;  
  12. import org.apache.http.client.methods.HttpPost;  
  13. import org.apache.http.impl.client.DefaultHttpClient;  
  14. import org.apache.http.message.BasicNameValuePair;  
  15. import org.apache.http.util.EntityUtils;  
  16.   
  17. import Android.app.Activity;  
  18. import android.os.Bundle;  
  19. import android.view.View;  
  20. import android.view.View.OnClickListener;  
  21. import android.widget.Button;  
  22.   
  23. public class Mini2440Activity extends Activity {  
  24.   
  25.     public class myButtonListener implements OnClickListener {  
  26.   
  27.         private HttpResponse response;  
  28.         private String tmpString;  
  29.   
  30.         public void onClick(View arg0) {  
  31.             // TODO Auto-generated method stub   
  32.             HttpClient httpclient = new DefaultHttpClient();  
  33.             HttpPost httppost = new HttpPost("http://192.168.1.123/post_datas.php");  
  34.   
  35.             try {  
  36.                 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);  
  37.                 nameValuePairs.add(new BasicNameValuePair("user""root"));  
  38.                 nameValuePairs.add(new BasicNameValuePair("passwd","shiguang"));  
  39.                 nameValuePairs.add(new BasicNameValuePair("para","58402F01"));  
  40.                 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));  
  41.   
  42.                 response = httpclient.execute(httppost);  
  43.                 tmpString = EntityUtils.toString(response.getEntity());  
  44.                 System.out.print(tmpString);  
  45.             } catch (ClientProtocolException e) {  
  46.                 // TODO Auto-generated catch block   
  47.                 e.printStackTrace();  
  48.             } catch (IOException e) {  
  49.                 // TODO Auto-generated catch block   
  50.                 e.printStackTrace();  
  51.             }  
  52.         }  
  53.     }  
  54.   
  55.     private Button myButton;  
  56.   
  57.     /** Called when the activity is first created. */  
  58.     @Override  
  59.     public void onCreate(Bundle savedInstanceState) {  
  60.         super.onCreate(savedInstanceState);  
  61.         setContentView(R.layout.main);  
  62.   
  63.         myButton = (Button) findViewById(R.id.myButton);  
  64.         myButton.setOnClickListener(new myButtonListener());  
  65.     }  
  66. }

Android程序与上一篇文章的程序完全一样

结果截图:



相关内容