Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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
Python程序(Pc上的服务器)和android应用程序(使用android Studio构建的客户端)之间的TCP套接字_Android_Python_Sockets_Client Server - Fatal编程技术网

Python程序(Pc上的服务器)和android应用程序(使用android Studio构建的客户端)之间的TCP套接字

Python程序(Pc上的服务器)和android应用程序(使用android Studio构建的客户端)之间的TCP套接字,android,python,sockets,client-server,Android,Python,Sockets,Client Server,嗨,我正在尝试在python代码(作为Pc上的服务器)和android应用程序(作为使用android Studio构建的客户端)之间实现TCP套接字 android的主要活动如下: package com.example.aneshkagoyal.socket; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import andro

嗨,我正在尝试在python代码(作为Pc上的服务器)和android应用程序(作为使用android Studio构建的客户端)之间实现TCP套接字

android的主要活动如下:

package com.example.aneshkagoyal.socket;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.w3c.dom.Text;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;

public class MainActivity extends AppCompatActivity {
    EditText t1;
   // String str;
    Button b1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        t1 = findViewById(R.id.msg);
        //str = t1.getText().toString();
        b1 = findViewById(R.id.button);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new Longrunning().execute(t1.getText().toString());

            }
        });

    }

    private class Longrunning extends AsyncTask<String,Void,Void>{
             Socket s;
             PrintWriter pw;
        @Override
        protected Void doInBackground(String... voids) {
            try {
                s = new Socket("192.168.1.10", 8888);
                pw = new PrintWriter(s.getOutputStream());
                pw.write(voids[0]);
                pw.flush();
                pw.close();
                s.close();
            }
            catch (IOException e){
                Log.e("error","error");
                e.printStackTrace();
            }

            return null;
        }
    }
}
package com.example.aneshkagoyal.socket;
导入android.os.AsyncTask;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入org.w3c.dom.Text;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.net.Socket;
公共类MainActivity扩展了AppCompatActivity{
编辑文本t1;
//字符串str;
按钮b1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1=findViewById(R.id.msg);
//str=t1.getText().toString();
b1=findViewById(R.id.按钮);
b1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
新建Longrunning().execute(t1.getText().toString());
}
});
}
私有类Longrunning扩展了异步任务{
插座;
印刷作家;
@凌驾
受保护的Void doInBackground(字符串…Void){
试一试{
s=新插座(“192.168.1.10”,8888);
pw=新的PrintWriter(s.getOutputStream());
pw.写入(无效[0]);
pw.flush();
关闭();
s、 close();
}
捕获(IOE异常){
Log.e(“错误”、“错误”);
e、 printStackTrace();
}
返回null;
}
}
}

我已向用户授予android上的internet权限,但我无法在他们之间建立通信……请帮助我,因为我不熟悉此定义

定义“无法建立通信”。发生了什么?什么都没有发生…我执行服务器代码,然后尝试发送消息,但没有打印任何内容,但我知道在服务器端,直到侦听一切正常,因为我已在那里包含检查,并且在客户端未输入捕获块(因为我在那里有日志消息),您了解网络问题吗?您的服务器似乎位于专用网络(192.168.*.*)上。android应用程序在哪里运行?你能从android设备“ping”服务器地址吗?嗨,ewindes…..我对网络不太了解,但我已经准备好学习…..该应用程序是使用android Studio构建的,正在我的android手机上运行…..不,我无法ping服务器(我尝试使用InetAddress)…请指导我如何纠正错误以使其全部正常工作在我看过的各种教程中,我们在执行ipconfigDefine“无法建立通信”后输入从命令行获得的本地计算机的ipv4地址。发生了什么?什么都没有发生…我执行服务器代码,然后尝试发送消息,但没有打印任何内容,但我知道在服务器端,直到侦听一切正常,因为我已在那里包含检查,并且在客户端未输入捕获块(因为我在那里有日志消息),您了解网络问题吗?您的服务器似乎位于专用网络(192.168.*.*)上。android应用程序在哪里运行?你能从android设备“ping”服务器地址吗?嗨,ewindes…..我对网络不太了解,但我已经准备好学习…..该应用程序是使用android Studio构建的,正在我的android手机上运行…..不,我无法ping服务器(我尝试使用InetAddress)…请指导我应该如何纠正错误以使其正常工作在我看到的各种教程中,我们在执行ipconfig后输入从命令行获得的本地计算机的ipv4地址
package com.example.aneshkagoyal.socket;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.w3c.dom.Text;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;

public class MainActivity extends AppCompatActivity {
    EditText t1;
   // String str;
    Button b1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        t1 = findViewById(R.id.msg);
        //str = t1.getText().toString();
        b1 = findViewById(R.id.button);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new Longrunning().execute(t1.getText().toString());

            }
        });

    }

    private class Longrunning extends AsyncTask<String,Void,Void>{
             Socket s;
             PrintWriter pw;
        @Override
        protected Void doInBackground(String... voids) {
            try {
                s = new Socket("192.168.1.10", 8888);
                pw = new PrintWriter(s.getOutputStream());
                pw.write(voids[0]);
                pw.flush();
                pw.close();
                s.close();
            }
            catch (IOException e){
                Log.e("error","error");
                e.printStackTrace();
            }

            return null;
        }
    }
}