上代码:
服务器端
package com.boge.server.model;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
import com.boge.mq.common.User;
import com.boge.mq.common.YQMessage;
import com.boge.mq.common.YQMessageType;
public class MQServer
{
ServerSocket mServerSocket = null;
Socket mSocket = null;
ObjectInputStream oic = null;
ObjectOutputStream oos = null;
public MQServer()
{
try
{
mServerSocket = new ServerSocket(30000);
System.out.println("MQ服务器已启动 in " + new Date());
while (true)
{
mSocket = mServerSocket.accept();
oic = new ObjectInputStream(mSocket.getInputStream());
oic.close();
oos.close();
mSocket.close();
}
} catch (IOException e)
{
e.printStackTrace();
}
}
}
Android应用界面:
package com.boge.mq.client.view;
import com.boge.mq.R;
import com.boge.mq.common.User;
import com.goge.mq.client.model.ClientConServerThread;
import com.goge.mq.client.model.MQClient;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class LoginActivity extends Activity
{
Context mContext = null;
EditText et_account, et_password;
public Handler handler;
public User user=null;
public ClientConServerThread clientThread;
@Override
protected void onCreate(Bundle savedInstanceState)
{
mContext = this;
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_login);
et_account = (EditText) findViewById(R.id.et_account);
et_password = (EditText) findViewById(R.id.et_password);
handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
if (msg.what == 0x123)
{
Intent intent = new Intent(mContext, MainActivity.class);
startActivity(intent);
}
}
};
Button btn_login = (Button) findViewById(R.id.btn_login);
btn_login.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
login(123, "123");
}
});
}
public void login(int a, String p)
{
user=new User();
user.setAccount(a);
user.setPassword(p);
clientThread=new ClientConServerThread(handler,user);
clientThread.start();
}
}
socket线程
package com.goge.mq.client.model;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketTimeoutException;
import android.os.Handler;
import android.os.Message;
import com.boge.mq.common.User;
import com.boge.mq.common.YQMessage;
public class ClientConServerThread extends Thread
{
Socket socket = null;
ObjectOutputStream osStream = null;
ObjectInputStream inStream = null;
User user;
YQMessage mess = null;
Handler handler;
public Handler revHandler;
public ClientConServerThread(Handler h, User u)
{
user = u;
handler = h;
}
@Override
public void run()
{
try
{
socket = new Socket();
try
{
socket.connect(new InetSocketAddress("192.168.1.140", 30000), 2000);
} catch (SocketTimeoutException e)
{
e.printStackTrace();
}
osStream = new ObjectOutputStream(socket.getOutputStream());
inStream = new ObjectInputStream(socket.getInputStream());
Message msg = new Message();
msg.what = 0x123;
handler.sendMessage(msg);
socket.close();
osStream.close();
inStream.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
我已确定,就是在厦门这句除了问题,抛出IO异常
try
{
socket.connect(new InetSocketAddress("192.168.1.140", 30000), 2000);
}
求大神解答