如题(PC做服务器端,模拟机做客户端)
要实现服务器端和客户端,一定要用真机吗?有模拟机可以不?
下面是代码
服务器端:import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;public class MyServer { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream inputStream = new FileInputStream("e://a.txt");
OutputStream outputStream = socket.getOutputStream();
int temp = 0;
byte buffer[] = new byte[1024 * 4];
while ((temp = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, temp);
}
serverSocket.close();
socket.close();
inputStream.close();
outputStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("服务器端关闭!");
}}
客户端:package myactivity.MyClient;import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class MyClientActivity extends Activity {
/** Called when the activity is first created. */
private Button btn=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new BtnListener());
} class BtnListener implements OnClickListener
{ public void onClick(View v) {
// TODO Auto-generated method stub
new ClientThread().start();
}

}
class ClientThread extends Thread {
public void run() {
Socket socket=null;
try {
socket = new Socket("192.168.1.100", 8888);
InputStream inputStream=socket.getInputStream();
byte buffer[]=new byte[4*1024];
int temp=0;
while((temp=inputStream.read(buffer))!=-1)
{
System.out.println(new String(buffer,0,temp));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}我在模拟机上点按钮,socket.close();就报空指向异常,求大神指教