Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Socket Android客户端_Java_Android_Sockets_Client - Fatal编程技术网

Java Socket Android客户端

Java Socket Android客户端,java,android,sockets,client,Java,Android,Sockets,Client,我在Java上做了一个TCP客户端,工作正常,但是当我将这个类导入到我的Android项目中时,它就不工作了 Android代码: // ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button)

我在Java上做了一个TCP客户端,工作正常,但是当我将这个类导入到我的Android项目中时,它就不工作了

Android代码:

// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button button = (Button) findViewById(R.id.SEND);
    ssid = (EditText) findViewById(R.id.textSsid);
    pass = (EditText) findViewById(R.id.textPass);
    debugText = (EditText) findViewById(R.id.debugText);

    cliente = new ClienteTCP();
    debugText.setText("Version 1-prealpha");

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Do something in response to button click
            demo(v);
        }
    });
}

public void demo(View view) {

    cliente.configure(ssid.getText(), pass.getText());

    CharSequence cs = cliente.sendMessage("Hola Mundo");

    if ( cs != null)
        debugText.setText(cs);
    else
        debugText.setText("ERROR OCURRED");
}
// ...
我总是收到“出错”的消息,我尝试使用另一个IP,但它们在Java上都可以正常工作,在android上则不行

类别代码:

private CharSequence SSID, pass;
private String HOST = "52.28.45.92"; // My external server i tried with localhot server too ...
// of course i have a server aplication running hahaha
private int PORT = 5000;

private Socket s;
private DataOutputStream oms;

// ...
public CharSequence sendMessage(String ms) {
    DataInputStream ims;
    CharSequence data = null;

    try {
        s = new Socket(HOST,PORT);

        oms = new DataOutputStream(s.getOutputStream());
        ims = new DataInputStream(s.getInputStream());

        oms.writeUTF(ms+getFull());
        data = ims.readUTF();

        oms.close();
        ims.close();
        s.close();

    } catch (IOException e) {
        e.printStackTrace();
    }

    return data;
}
我想这可能是因为我的模拟器,有什么想法吗?代码错了吗

编辑:服务器代码:

# ...
# Wrote on Python:
while 1:
    data = conn.recv(BUFFER_SIZE)
    if not data: break
    print "received data:", data
    conn.send(data+'\r\n')

conn.close()

两件事:1。您应该在与Main不同的线程上运行
public void demo(视图)
。2您可以发布日志错误吗?没有错误,只是cs总是为空。
DataInputStream
readUTF()
方法与
readLine()
不同,这里有更多Python程序发送的数据无法使用
readUTF()读取
method。为什么在我的Java项目中阅读它:有什么区别?返回data==null,然后说发生了错误。但是你会有一个陷阱:
catch(IOE例外)
。因此,您已经在打印堆栈跟踪,但也可以记录e.getMessage()以查看异常的原因。或者返回e.getMessage()直接查看它。