2011-05-11 113 views
0

我想在android中创建聊天应用程序。我使它像使用套接字的简单Java应用程序,但它不工作。请提出我应该做的事情。如何在android中创建聊天服务器和客户端

这是我的代码。在点击按钮,应用程序正在关闭..

package pack.chat; 

import android.app.Activity; 
import android.content.DialogInterface.OnClickListener; 
import android.content.Intent; 
import android.content.SharedPreferences.Editor; 

import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.*; 
import java.io.*; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 



public class chatAct extends Activity implements android.view.View.OnClickListener { 
    /** Called when the activity is first created. */ 

    PrintWriter out; 
    BufferedReader in ; 
    Socket socketClient; 
    EditText edit1; 
    String editTextString; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     try{ 
      socketClient= new Socket("hddlntd6014578 ", 8180); 
      out = new PrintWriter(socketClient.getOutputStream(), true); 
      in = new BufferedReader(new InputStreamReader(socketClient.getInputStream())); 
     } 
     catch (UnknownHostException e){ 
      System.out.println("Host cannt be reached"); 
     } 
     catch (IOException i){ 
      System.out.println("IO cannt be found"); 
     } 


     Button searchButton = (Button)findViewById(R.id.Button01); 
     searchButton.setOnClickListener(this); 

     // InputStreamReader input= new InputStreamReader(); 
    // BufferedReader stringForServer= new BufferedReader(new InputStreamReader(R.id.EditText01)); 

    } 
    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     edit1= (EditText)findViewById(R.id.EditText01); 

      System.out.println(edit1.getText().toString()); 

       String forServer = edit1.getText().toString(); 
      out.println(forServer); 
    } 
} 

你可以提取我是一只新的蜜蜂。请提出建议。如果你有代码,并且你可以和我分享。

登录CAT ::

05-11 15:54:39.614: WARN/dalvikvm(370): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370): FATAL EXCEPTION: main 
05-11 15:54:39.624: ERROR/AndroidRuntime(370): java.lang.NullPointerException 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at pack.chat.chatAct.onClick(chatAct.java:61) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at android.view.View.performClick(View.java:2485) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at android.view.View$PerformClick.run(View.java:9080) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at android.os.Handler.handleCallback(Handler.java:587) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at android.os.Handler.dispatchMessage(Handler.java:92) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at android.os.Looper.loop(Looper.java:123) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at android.app.ActivityThread.main(ActivityThread.java:3647) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at java.lang.reflect.Method.invoke(Method.java:507) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
05-11 15:54:39.624: ERROR/AndroidRuntime(370):  at dalvik.system.NativeStart.main(Native Method) 
05-11 15:54:39.634: WARN/ActivityManager(61): Force finishing activity pack.chat/.chatAct 
05-11 15:54:40.164: WARN/ActivityManager(61): Activity pause timeout for HistoryRecord{40672790 pack.chat/.chatAct} 
+0

你能更具体地说明什么不起作用吗? – Pepe

+0

请从logcat输出添加堆栈跟踪。 –

+0

@Stuti:你有没有任何工作示例或链接可以帮助我制作一个聊天应用程序 –

回答

2

您没有定义变量out。所以out.print*将NPE。 您可以在该线上使用System.out.print*或在使用前初始化out

查看代码时,我也忽略了这一点:)如果您使用Eclipse之类的IDE,请尝试为潜在的NPE等增加警告级别。

+0

thnx rupp但我编辑了文本,我也可以提取它的数据。 – Stuti

+0

那么第61行是什么? chatAct.java:61 –

+0

out.println(forserver);可以有任何我用来创建套接字连接的PC名称中的错误,Ihav听说模拟器需要一些其他的IP。 – Stuti

0

我已经做一个应用程序使用C2DM(邮件推送),这是Android设备之间发送数据的方式喵聊天。我想你应该把你的C2DM云端设备用于制作这个应用的android的信息技术。 我希望这是帮助。

+0

Thnx亲爱的..但我不知道如何在C2DM中工作。你能跟我分享一些东西吗? – Stuti