80,360
社区成员
发帖
与我相关
我的任务
分享
package com.example.socketapp;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
EditText ip;
EditText editText;
TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ip=(EditText)findViewById(R.id.ip);
editText=(EditText)findViewById(R.id.editText);
text=(TextView)findViewById(R.id.textView2);
findViewById(R.id.connect).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
connect();
}
});
findViewById(R.id.send).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
send();
}
});
}
//---------------------------
BufferedReader reader=null;
BufferedWriter writer=null;
Socket socket= null;
public void connect(){
try {
AsyncTask<Void, String, Void> read=new AsyncTask<Void, String, Void>(){
@Override
protected Void doInBackground(Void... params) {
try {
socket= new Socket(ip.getText().toString(),5000);
writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
publishProgress("@success");
while ((line=reader.readLine())!=null) {
publishProgress(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(String... values) {
if (values[0].equals("@success")) {
Toast.makeText(MainActivity.this, "连接成功 ", Toast.LENGTH_SHORT).show();
}
text.append(values[0]);
super.onProgressUpdate(values);
}
};
read.execute();
} catch (Exception e) {
Toast.makeText(MainActivity.this, "连接失败 ", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
public void send(){
try {
writer.write(editText.getText().toString()+"\n");
writer.flush();
editText.setText("");
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}