【问题标题】:Android client Socket throws SocketException:Android客户端Socket抛出SocketException:
【发布时间】:2011-12-27 07:14:43
【问题描述】:

我正在尝试在 android 中实现 java 套接字客户端,而我的服务器是我的笔记本电脑。我希望我的 android 手机通过 java 套接字连接到笔记本电脑。但是我在客户端遇到异常:“SocketException”,它看起来是因为 socket() 调用无法正确创建套接字。下面是我的 android 客户端代码供审查。是否有解决异常的解决方案:

public class SimpleActivityExampleActivity extends Activity  {

/** Called when the activity is first created. */
private String usrName;
private String vendorName;
private String message;
public Socket socket;

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


public void submitTheForm(View view) {

    final EditText edittext1 = (EditText) findViewById(R.id.editText1);
    final EditText edittext2 = (EditText) findViewById(R.id.EditText01);
    final EditText edittext3 = (EditText) findViewById(R.id.editText2);
    usrName = edittext1.getText().toString(); 
    vendorName = edittext2.getText().toString();
    message = edittext3.getText().toString();
    message = usrName+ "," + vendorName + "," + message;

    byte[] msg = message.getBytes();
    try {
    InetAddress serverAddr = InetAddress.getByName("192.168.1.2");
        Log.d("ClientActivity", "C: Connecting...");

        socket = new Socket(serverAddr, 2200);
    socket.getOutputStream().write(msg);
    socket.getOutputStream().flush();
    } catch (UnknownHostException e) {

        Toast.makeText(SimpleActivityExampleActivity.this, "unknownhostException", Toast.LENGTH_SHORT).show();
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SocketException e) {
        // TODO Auto-generated catch block

        Toast.makeText(SimpleActivityExampleActivity.this, "Sockexception", Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }catch (IOException e) {
        // TODO Auto-generated catch block
        //System.out.println("in IOexception for sure");
        Toast.makeText(SimpleActivityExampleActivity.this, "IOexception", Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }
    catch (Exception e){
        Toast.makeText(SimpleActivityExampleActivity.this, "Exception", Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }finally {
        if(socket != null){
            try {
                socket.close();

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}
} 

submitTheForm() 函数在从 main.xml 文件 "android:onClick = "submitTheForm" 中单击按钮时调用

【问题讨论】:

  • 能否请您发布与异常相关的堆栈跟踪?

标签: java android


【解决方案1】:

您是否可能忘记在清单文件中添加 Internet 权限?

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

【讨论】:

    【解决方案2】:

    你设置了吗

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

    许可?

    找到这个here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      • 2014-02-19
      相关资源
      最近更新 更多