(该代码在4.2.2内调试通过)
1.记得加权限
<uses-permission android:name="android.permission.INTERNET"/>
注意:Android 4.0之后,就不能在主线程进行socket通信,否则会抛异常。
2.代码
MainActivity.java
1 package mao.example.quicksend; 2 3 4 import android.app.Activity; 5 import android.content.Context; 6 import android.os.Bundle; 7 import android.os.Handler; 8 import android.util.Log; 9 import android.view.Menu; 10 import android.view.MenuItem; 11 import android.widget.Button; 12 import android.widget.TextView; 13 import android.widget.Toast; 14 import android.view.View; 15 16 public class MainActivity extends Activity { 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.activity_main); 22 23 InitUI(); 24 25 //获得Button对象 26 Button btnConnect = (Button) findViewById(R.id.buttonConnect); 27 btnConnect.setOnClickListener(new Button.OnClickListener() { 28 public void onClick(View v) 29 { 30 //这里处理事件 31 32 //ConnectServer(); 33 //UDPClient udpET = new UDPClient("192.168.0.14","123"); 34 //udpET.start(); 35 //DisplayToast("点击了\"连接\"按钮"); 36 } 37 }); 38 39 //发送Button 40 btnConnect = (Button) findViewById(R.id.buttonSend); 41 btnConnect.setOnClickListener(new Button.OnClickListener() { 42 public void onClick(View v) 43 { 44 //这里处理事件 45 SendText(); 46 } 47 }); 48 } 49 50 @Override 51 public boolean onCreateOptionsMenu(Menu menu) { 52 // Inflate the menu; this adds items to the action bar if it is present. 53 getMenuInflater().inflate(R.menu.main, menu); 54 return true; 55 } 56 57 @Override 58 public boolean onOptionsItemSelected(MenuItem item) { 59 // Handle action bar item clicks here. The action bar will 60 // automatically handle clicks on the Home/Up button, so long 61 // as you specify a parent activity in AndroidManifest.xml. 62 int id = item.getItemId(); 63 if (id == R.id.action_settings) { 64 return true; 65 } 66 return super.onOptionsItemSelected(item); 67 } 68 69 /* 显示Toast */ 70 public void DisplayToast(String str) 71 { 72 Toast.makeText(this, str, Toast.LENGTH_SHORT).show(); 73 } 74 75 public void InitUI() 76 { 77 TextView text=(TextView)findViewById(R.id.editTextIP); 78 text.setText("192.168.0.14"); 79 80 text = (TextView)findViewById(R.id.editTextFilePath); 81 text.setText("Udp Client Send Test"); 82 } 83 84 // connect server 85 public void SendText() 86 { 87 TextView editIP=(TextView)findViewById(R.id.editTextIP); 88 TextView editText=(TextView)findViewById(R.id.editTextFilePath); 89 String message = editText.getText().toString() + "\r\n"; 90 91 UDPClient udpET = new UDPClient(editIP.getText().toString(), message); 92 udpET.start(); 93 } 94 }