Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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 将套接字从Android发送到Python服务器_Java_Python_Android - Fatal编程技术网

Java 将套接字从Android发送到Python服务器

Java 将套接字从Android发送到Python服务器,java,python,android,Java,Python,Android,澄清: import socket s = socket.socket() s.bind(("192.168.1.94", 60)) s.listen(1) #clients permitted connect print "server run" sc, addr = s.accept() while True: recibido = sc.recv(1024) if recibido == "quit": bre

澄清:

import socket  

s = socket.socket()   
s.bind(("192.168.1.94", 60))  
s.listen(1)  #clients permitted connect
print "server run"

sc, addr = s.accept()  

while True:  
      recibido = sc.recv(1024)  
      if recibido == "quit":  
         break        
      print "received:", recibido  
      sc.send(recibido)  

print "bye"  

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

        Button button = findViewById(R.id.idbtn);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Socket socket = new Socket("192.168.1.94",60);
                DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
                DOS.writeUTF("HELLO_WORLD");
                socket.close();
            }
        });
    }
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008824
2019-12-27 17:30:41.054 9255-9255/com.example.milchycompany.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.milchycompany.myapplication, PID: 9255
    android.os.NetworkOnMainThreadException
        at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1303)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:333)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
        at java.net.Socket.connect(Socket.java:586)
        at java.net.Socket.connect(Socket.java:535)
        at java.net.Socket.<init>(Socket.java:427)
        at java.net.Socket.<init>(Socket.java:210)
        at com.example.milchycompany.myapplication.MainActivity$1.onClick(MainActivity.java:32)
        at android.view.View.performClick(View.java:5610)
        at android.view.View$PerformClick.run(View.java:22265)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
  • 这两个设备连接到同一个本地网络

  • IP地址是正确的

  • 已经尝试使用不同的端口

  • 已成功添加Android应用程序权限

  • 图中显示,在虚拟机上运行的android应用程序也在真实设备上进行了测试

目的:我希望我的手机可以通过插座向电脑发送数据

服务器(Python):

import socket  

s = socket.socket()   
s.bind(("192.168.1.94", 60))  
s.listen(1)  #clients permitted connect
print "server run"

sc, addr = s.accept()  

while True:  
      recibido = sc.recv(1024)  
      if recibido == "quit":  
         break        
      print "received:", recibido  
      sc.send(recibido)  

print "bye"  

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

        Button button = findViewById(R.id.idbtn);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Socket socket = new Socket("192.168.1.94",60);
                DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
                DOS.writeUTF("HELLO_WORLD");
                socket.close();
            }
        });
    }
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008824
2019-12-27 17:30:41.054 9255-9255/com.example.milchycompany.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.milchycompany.myapplication, PID: 9255
    android.os.NetworkOnMainThreadException
        at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1303)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:333)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
        at java.net.Socket.connect(Socket.java:586)
        at java.net.Socket.connect(Socket.java:535)
        at java.net.Socket.<init>(Socket.java:427)
        at java.net.Socket.<init>(Socket.java:210)
        at com.example.milchycompany.myapplication.MainActivity$1.onClick(MainActivity.java:32)
        at android.view.View.performClick(View.java:5610)
        at android.view.View$PerformClick.run(View.java:22265)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Java(客户端):

import socket  

s = socket.socket()   
s.bind(("192.168.1.94", 60))  
s.listen(1)  #clients permitted connect
print "server run"

sc, addr = s.accept()  

while True:  
      recibido = sc.recv(1024)  
      if recibido == "quit":  
         break        
      print "received:", recibido  
      sc.send(recibido)  

print "bye"  

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

        Button button = findViewById(R.id.idbtn);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Socket socket = new Socket("192.168.1.94",60);
                DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
                DOS.writeUTF("HELLO_WORLD");
                socket.close();
            }
        });
    }
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008824
2019-12-27 17:30:41.054 9255-9255/com.example.milchycompany.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.milchycompany.myapplication, PID: 9255
    android.os.NetworkOnMainThreadException
        at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1303)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:333)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
        at java.net.Socket.connect(Socket.java:586)
        at java.net.Socket.connect(Socket.java:535)
        at java.net.Socket.<init>(Socket.java:427)
        at java.net.Socket.<init>(Socket.java:210)
        at com.example.milchycompany.myapplication.MainActivity$1.onClick(MainActivity.java:32)
        at android.view.View.performClick(View.java:5610)
        at android.view.View$PerformClick.run(View.java:22265)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
错误消息:

import socket  

s = socket.socket()   
s.bind(("192.168.1.94", 60))  
s.listen(1)  #clients permitted connect
print "server run"

sc, addr = s.accept()  

while True:  
      recibido = sc.recv(1024)  
      if recibido == "quit":  
         break        
      print "received:", recibido  
      sc.send(recibido)  

print "bye"  

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

        Button button = findViewById(R.id.idbtn);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Socket socket = new Socket("192.168.1.94",60);
                DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
                DOS.writeUTF("HELLO_WORLD");
                socket.close();
            }
        });
    }
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008824
2019-12-27 17:30:41.054 9255-9255/com.example.milchycompany.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.milchycompany.myapplication, PID: 9255
    android.os.NetworkOnMainThreadException
        at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1303)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:333)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
        at java.net.Socket.connect(Socket.java:586)
        at java.net.Socket.connect(Socket.java:535)
        at java.net.Socket.<init>(Socket.java:427)
        at java.net.Socket.<init>(Socket.java:210)
        at com.example.milchycompany.myapplication.MainActivity$1.onClick(MainActivity.java:32)
        at android.view.View.performClick(View.java:5610)
        at android.view.View$PerformClick.run(View.java:22265)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglCodecCommon:glUtilsParamSize:未知参数0x00008cdf
2019-12-27 17:30:03.362 9255-9281/com.example.milchycompany.myapplication E/eglcodecommon:glUtilsParamSize:unknow参数0x00008824
2019-12-27 17:30:41.054 9255-9255/com.example.milchycompany.myapplication E/AndroidRuntime:致命异常:main
流程:com.example.milchycompany.myapplication,PID:9255
android.os.NetworkOnMainThreadException
在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork上(StrictMode.java:1303)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:333)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
位于java.net.socksocketimpl.connect(socksocketimpl.java:356)
位于java.net.Socket.connect(Socket.java:586)
位于java.net.Socket.connect(Socket.java:535)
位于java.net.Socket(Socket.java:427)
位于java.net.Socket。(Socket.java:210)
位于com.example.milchycompany.myapplication.MainActivity$1.onClick(MainActivity.java:32)
在android.view.view.performClick(view.java:5610)中
在android.view.view$PerformClick.run(view.java:22265)
位于android.os.Handler.handleCallback(Handler.java:751)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:154)
位于android.app.ActivityThread.main(ActivityThread.java:6077)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)

发生这种情况是因为您正在主线程上执行网络操作。 您应该始终在线程上或作为异步任务运行网络操作

请参见下面的示例

:


永远不要忘记将此权限添加到AndroidManifest.xml

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


查看错误:NetworkOnMainThreadException我只发送数据,不接收数据