2012-01-20 49 views
0

我目前正在尝试编写一个非常简单的应用程序,使用我的android手机套接字发送对象到我的简单服务器。我已经写了服务器来接收该对象,目前只收到一个Date对象,已经从我的笔记本电脑用一个简单的客户端程序对它进行了测试,并且服务器正在运行,但我无法获得连接的Android版本。如果我能得到一些指导真的不胜感激。我在下面提供了我的代码。谢谢。使用套接字进行Android编程

public class Test03 extends Activity { 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.test03); 

      final Button gpsSend = (Button)findViewById(R.id.gpsSend); 

      gpsSend.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      // Contact Date Server 
      ObjectOutputStream oos = null; 
      ObjectInputStream ois = null; 
      Socket socket = null; 
      Date date = null; 

      try{ 
       socket = new Socket("igor.gold.ac.uk", 3000); 
       oos = new ObjectOutputStream(socket.getOutputStream()); 
       ois = new ObjectInputStream(socket.getInputStream()); 
       date = (Date) ois.readObject(); 
       DateFormat formatter = new SimpleDateFormat("dd-MMM-yy"); 
       textView.setText(formatter.format(date)); 
       oos.close(); 
       ois.close(); 
      } 
      catch(Exception e){ 
       textView.setText(e.getMessage()); 
      } 
     } 
    }); 
} 
} 

感谢您的帮助证明Jin35是正确的。我没有在清单文件中包含Internet权限。

因此,对于任何其他新手,你必须以下行添加到manifest.xml中

<uses-permission android:name="android.permission.INTERNET" /> 
+1

的就是你得到确切的错误任何其他新手? – x4u

+1

您是否提供互联网接入许可? – Jin35

回答

0

感谢您的帮助,证明Jin35是对的。我没有在清单文件中包含Internet权限。

所以对你有以下行添加到manifest.xml中

<uses-permission android:name="android.permission.INTERNET" /> 
0

使用e.printStacktrace()代替的getMessage()。调试更好。