我想做一个程序,连接Python代码和androidstudio。 但是在androidstudio上出现了一个问题,它没有显示任何我想在模拟器屏幕上显示的UI。我想是因为“严格模式”。但如果我把严格模式代码排除在外。程序已停止。我该怎么办?这是密码。在
Python代码(服务器)
import socket
import random as r
HOST = "localhost"
PORT = 9999
x = ['10', '20', '30', '40', '50']
y = ['-10', '-20', '-30','-40', '-50']
rssi = ['1.5', '2.5', '3.5', '4.5', '5.5']
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('Socket created')
try:
s.bind((HOST, PORT))
except socket.error as err:
print('Bind failed. Error Code : ' .format(err))
s.listen(10)
print("Socket Listening")
conn, addr = s.accept()
while(True):
i = r.randint(0, 4)
conn.send(bytes("x : " + x[i] + " y : "+ y[i] + " rssi : " +
rssi[i] + "\r\n", 'UTF-8'))
print("Message sent in python")
data = conn.recv(1024)
print(data.decode(encoding='UTF-8'))
安卓工作室(客户端)AndroidManifest.xml在
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yangseungchan.socketwithpython">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
3.安卓工作室(客户端)-主活动.java在
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class MainActivity extends AppCompatActivity {
Button button;
TextView textView;
private Socket clientSocket;
private BufferedReader socketIn;
private PrintWriter socketOut;
private int port = 9999;
private final String ip = "222.99.99.14";
private MyHandler myHandler;
private MyThread myThread;
static String text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
try{
clientSocket = new Socket(ip, port);
socketIn = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
socketOut = new PrintWriter(clientSocket.getOutputStream(), true);
}catch(Exception e){
e.printStackTrace();
}
myHandler = new MyHandler();
myThread = new MyThread();
myThread.start();
button = (Button)findViewById(R.id.button);
textView = (TextView)findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/*socketPython.Datastack.printStack();
textView.setText((String)SocketwithPython.Datastack.Peek(0));*/
socketOut.println(123);
}
});
}
class MyThread extends Thread{
@Override
public void run() {
while(true){
try{
System.out.println("Trying to read...");
String data = socketIn.readLine();
Message msg = myHandler.obtainMessage();
msg.obj = data;
myHandler.sendMessage(msg);
System.out.println(data);
socketOut.print("Try"+"\r\n");
socketOut.flush();
System.out.println("Message sent");
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
class MyHandler extends Handler {
public void handleMessage(Message msg){
textView.setText(msg.obj.toString());
}
}
}
目前没有回答
相关问题 更多 >
编程相关推荐