server.java java程序,先在pc上运行
public class Server {
int serverPort=9898;
ServerSocket serverSocket=null;
OutputStream outputStream=null;
InputStream inputStream=null;
PrintWriter printWriter=null;
Socket socket=null;
BufferedReader bufferedReader=null;
public Server(){
try{
serverSocket=new ServerSocket(serverPort);//根据端口创建套接字
System.out.println("服务启动···");
socket=serverSocket.accept();//等待客户端连接
System.out.println("客户已连接\n");
}catch(Exception ex){
ex.printStackTrace();
}
try{
outputStream=socket.getOutputStream();
inputStream=socket.getInputStream();
printWriter=new PrintWriter(outputStream,true);
bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
BufferedReader inBufferedReader=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
String message=bufferedReader.readLine();
System.out.println("client:"+message);
if(message.equals("bye"))
break;
printWriter.println(message);
}
outputStream.close();
inputStream.close();
socket.close();
serverSocket.close();
System.out.println("disconnected````````");
}catch(Exception e){
e.printStackTrace();
}finally{
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Server();
}}
main.javapublic class MainActivity extends Activity implements Runnable {
// LocationManager lManager;
// LocationListener locationListener;
// String locationProvider;
TextView chatmessage=null;
EditText sendmessage=null;
Button send_button=null;
static final String HOST="10.0.2.2";
static final int PORT=9898;
Socket socket=null;
BufferedReader bufferedReader=null;
PrintWriter printWriter=null;
String string="";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chatmessage = (TextView) findViewById(R.id.textview1);
sendmessage=(EditText)findViewById(R.id.edittext1);
send_button=(Button)findViewById(R.id.button1);
try{
socket=new Socket(HOST,PORT);
bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
printWriter=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
}catch(Exception e){
e.printStackTrace();
CreateDialog(e.getMessage());
}
send_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String message=sendmessage.getText().toString();
if(socket.isConnected()){
if(!socket.isOutputShutdown()){
printWriter.println(message);
chatmessage.setText(chatmessage.getText().toString()+"\n"+"client:"+message);
sendmessage.setText("");//清空edittext
}
}
}
});
new Thread(this).start();
}
public void CreateDialog(String message){
android.app.AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("异常");
builder.setMessage(message);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.show();
}
public void run() {
// TODO Auto-generated method stub
try {
while(true){
if(socket.isConnected())
{
if(!socket.isInputShutdown())
{
if((string=bufferedReader.readLine())!=null)
{
Log.i("TAG", "++"+string);
string+="";
messenger.sendMessage(messenger.obtainMessage());
}
else{
}
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.w("TAG", "--"+e.toString());
}
}
public Handler messenger=new Handler(){
public void handleMessage(Message msg){
super.handleMessage(msg);
Log.i("TAG", "--"+msg);
chatmessage.setText(chatmessage.getText().toString()+"\n"+"server:"+string);
}
};
// public boolean onCreateOptionsMenu(Menu menu) {
// getMenuInflater().inflate(R.menu.activity_main, menu);
// return true;
// }
// }
main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
<EditText
android:inputType="text"
android:id="@+id/edittext1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="selfDestruct"
android:text="@string/app_name" />
</LinearLayout>error11-06 15:11:01.802: E/Trace(895): error opening trace file: No such file or directory (2)
11-06 15:11:07.972: E/AndroidRuntime(895): FATAL EXCEPTION: main
11-06 15:11:07.972: E/AndroidRuntime(895): java.lang.NullPointerException
11-06 15:11:07.972: E/AndroidRuntime(895): at com.example.gpstest.MainActivity$2.onClick(MainActivity.java:82)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.view.View.performClick(View.java:4084)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.view.View$PerformClick.run(View.java:16966)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.os.Handler.handleCallback(Handler.java:615)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.os.Handler.dispatchMessage(Handler.java:92)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.os.Looper.loop(Looper.java:137)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.app.ActivityThread.main(ActivityThread.java:4745)
11-06 15:11:07.972: E/AndroidRuntime(895): at java.lang.reflect.Method.invokeNative(Native Method)
11-06 15:11:07.972: E/AndroidRuntime(895): at java.lang.reflect.Method.invoke(Method.java:511)
11-06 15:11:07.972: E/AndroidRuntime(895): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-06 15:11:07.972: E/AndroidRuntime(895): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-06 15:11:07.972: E/AndroidRuntime(895): at dalvik.system.NativeStart.main(Native Method)
public class Server {
int serverPort=9898;
ServerSocket serverSocket=null;
OutputStream outputStream=null;
InputStream inputStream=null;
PrintWriter printWriter=null;
Socket socket=null;
BufferedReader bufferedReader=null;
public Server(){
try{
serverSocket=new ServerSocket(serverPort);//根据端口创建套接字
System.out.println("服务启动···");
socket=serverSocket.accept();//等待客户端连接
System.out.println("客户已连接\n");
}catch(Exception ex){
ex.printStackTrace();
}
try{
outputStream=socket.getOutputStream();
inputStream=socket.getInputStream();
printWriter=new PrintWriter(outputStream,true);
bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
BufferedReader inBufferedReader=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
String message=bufferedReader.readLine();
System.out.println("client:"+message);
if(message.equals("bye"))
break;
printWriter.println(message);
}
outputStream.close();
inputStream.close();
socket.close();
serverSocket.close();
System.out.println("disconnected````````");
}catch(Exception e){
e.printStackTrace();
}finally{
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Server();
}}
main.javapublic class MainActivity extends Activity implements Runnable {
// LocationManager lManager;
// LocationListener locationListener;
// String locationProvider;
TextView chatmessage=null;
EditText sendmessage=null;
Button send_button=null;
static final String HOST="10.0.2.2";
static final int PORT=9898;
Socket socket=null;
BufferedReader bufferedReader=null;
PrintWriter printWriter=null;
String string="";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chatmessage = (TextView) findViewById(R.id.textview1);
sendmessage=(EditText)findViewById(R.id.edittext1);
send_button=(Button)findViewById(R.id.button1);
try{
socket=new Socket(HOST,PORT);
bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
printWriter=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
}catch(Exception e){
e.printStackTrace();
CreateDialog(e.getMessage());
}
send_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String message=sendmessage.getText().toString();
if(socket.isConnected()){
if(!socket.isOutputShutdown()){
printWriter.println(message);
chatmessage.setText(chatmessage.getText().toString()+"\n"+"client:"+message);
sendmessage.setText("");//清空edittext
}
}
}
});
new Thread(this).start();
}
public void CreateDialog(String message){
android.app.AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("异常");
builder.setMessage(message);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.show();
}
public void run() {
// TODO Auto-generated method stub
try {
while(true){
if(socket.isConnected())
{
if(!socket.isInputShutdown())
{
if((string=bufferedReader.readLine())!=null)
{
Log.i("TAG", "++"+string);
string+="";
messenger.sendMessage(messenger.obtainMessage());
}
else{
}
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.w("TAG", "--"+e.toString());
}
}
public Handler messenger=new Handler(){
public void handleMessage(Message msg){
super.handleMessage(msg);
Log.i("TAG", "--"+msg);
chatmessage.setText(chatmessage.getText().toString()+"\n"+"server:"+string);
}
};
// public boolean onCreateOptionsMenu(Menu menu) {
// getMenuInflater().inflate(R.menu.activity_main, menu);
// return true;
// }
// }
main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
<EditText
android:inputType="text"
android:id="@+id/edittext1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="selfDestruct"
android:text="@string/app_name" />
</LinearLayout>error11-06 15:11:01.802: E/Trace(895): error opening trace file: No such file or directory (2)
11-06 15:11:07.972: E/AndroidRuntime(895): FATAL EXCEPTION: main
11-06 15:11:07.972: E/AndroidRuntime(895): java.lang.NullPointerException
11-06 15:11:07.972: E/AndroidRuntime(895): at com.example.gpstest.MainActivity$2.onClick(MainActivity.java:82)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.view.View.performClick(View.java:4084)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.view.View$PerformClick.run(View.java:16966)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.os.Handler.handleCallback(Handler.java:615)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.os.Handler.dispatchMessage(Handler.java:92)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.os.Looper.loop(Looper.java:137)
11-06 15:11:07.972: E/AndroidRuntime(895): at android.app.ActivityThread.main(ActivityThread.java:4745)
11-06 15:11:07.972: E/AndroidRuntime(895): at java.lang.reflect.Method.invokeNative(Native Method)
11-06 15:11:07.972: E/AndroidRuntime(895): at java.lang.reflect.Method.invoke(Method.java:511)
11-06 15:11:07.972: E/AndroidRuntime(895): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-06 15:11:07.972: E/AndroidRuntime(895): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-06 15:11:07.972: E/AndroidRuntime(895): at dalvik.system.NativeStart.main(Native Method)
解决方案 »
- 关于程序从sd卡移动到手机内存权限丢失问题,求助大神!!!
- 如何得到Activity中的所有view
- android来电通的归属地数据存放问题
- android 新建线程接收 UDP 请求
- SQLite 删除记录后, 自增ID置0的问题
- 如何通过Android.mk实现链接其他so
- 关于android环境搭建问题,请教android开发高手
- Android项目在1.6模拟器上运行正常,在1.5上就会报错,有没有办法让程序匹配1.5啊
- 怎么给tabhost放初始值
- 请教下,android如何捕获imageview已经显示在当前窗口的消息?
- android蓝牙虚拟串口接收PC数据,经常丢失!
- 尝试写地图类应用出错,MapActivity.<init> 时出错
建议lz看看这个