1.我是用Thread來撰寫Server的部分
package com.example.androidserversocket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.StringTokenizer;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView info, infoip, msg;
String message = "";
ServerSocket serverSocket;
DBConnection connect;
SQLiteDatabase db;
ArrayList<HashMap<String, String>> listvalues;
ListView listview;
private int mYear;
private int mMonth;
private int mDay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
info = (TextView) findViewById(R.id.info);
connect=new DBConnection(MainActivity.this);
Calendar c=Calendar.getInstance();//建立抓日期物件c
mYear=c.get(Calendar.YEAR);//年
mMonth=c.get(Calendar.MONTH);//月
mDay=c.get(Calendar.DAY_OF_MONTH);//日
listvalues = new ArrayList<HashMap<String,String>>();
listview = (ListView)findViewById(R.id.listview);
/*infoip = (TextView) findViewById(R.id.infoip);
msg = (TextView) findViewById(R.id.msg);
infoip.setText(getText());*/
Thread socketServerThread = new Thread(new SocketServerThread());
socketServerThread.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (serverSocket != null) {
try {
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//Server由Thread開始執行
private class SocketServerThread extends Thread{
public void run() {
ServerSocket listener;
try {
listener = new ServerSocket(91);
Log.v("tag","messageserver1");
while (true) {
Socket socket = listener.accept();
Log.v("tag","messageserver2");
try {
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str, "$");
String username = st.nextToken();
String detail = st.nextToken();
String by = st.nextToken();
String date =st.nextToken();
ContentValues values = new ContentValues();
values.put("username", username.toString());
values.put("detail", detail.toString());
values.put("by", by.toString());
values.put("date",date);
db.insert("contact", null, values);
db.close();
}finally{
socket.close();
}
}
}catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
2.Log的部分
10-02 14:42:38.490: D/ExchangeService(685): Received deviceId from Email app: null
10-02 14:42:38.490: D/ExchangeService(685): !!! deviceId unknown; stopping self and retrying
10-02 14:42:43.510: D/ExchangeService(685): !!! EAS ExchangeService, onCreate
10-02 14:42:43.520: D/ExchangeService(685): !!! EAS ExchangeService, onStartCommand, startingUp = false, running = false
10-02 14:42:43.532: D/ExchangeService(685): !!! EAS ExchangeService, onStartCommand, startingUp = true, running = false
在跑完InetAddress下的message1之後直接跳到下面IO例外的message5,顯示了上面這些
|