我在Javafx上遇到了通信威胁问题
事实上,当我通过我的树莓pi发送一个字符串消息需要2秒钟时,我的响应需要7秒钟,对于我的应用程序来说太长了,但是序列号,它是即时的
这是我的服务器代码:
package tco;
import java.io.*;
import java.net.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class MyRxTx extends Thread {
TCO tco = new TCO();
static Socket clientSocket;
static String homeIp = "192.168.43.90"; //internal ip of server (aka Pi in this case)
static int port = 12800;
String message;
int stream;
@Override
public void run() {
try {
//Protocole de connection
Socket sock = new Socket(homeIp, port);
PrintStream out = new PrintStream(sock.getOutputStream());
BufferedInputStream reader = null;
reader = new BufferedInputStream(sock.getInputStream());
while(true) {
if(reader.available() != 0){
byte[] b = new byte[500];
stream = reader.read(b);
message = new String(b, 0, stream);
if(message.length()==8){
tco.gestion_donnee_recue(message);
}
}
out.println(TCO.ligne_a_ecrire);
TCO.ligne_a_ecrire="";
}
} catch (IOException ex) {
System.out.println("Impossible de joindre : " + homeIp + "." + ex.getMessage());
}
}
}
这是我的适配器代码:
import threading
import time
import sys
import serial
import os
import socket
def Task1(ser):
while 1:
input=ser.readline()
connexion_avec_client.send(input)
time.sleep(0.005)
def Task2(ser):
while 1:
msg_recu = connexion_avec_client.recv(1024)
ser.write(msg_recu)
def Main():
ser = serial.Serial(
port='/dev/ttyACM0',\
baudrate=9600,\
parity=serial.PARITY_NONE,\
stopbits=serial.STOPBITS_ONE,\
bytesize=serial.EIGHTBITS,\
timeout=0)
t1 = threading.Thread(target = Task1, args=[ser])
t2 = threading.Thread(target = Task2, args=[ser])
t1.start()
t2.start()
hote = ''
port = 12800
connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_principale.bind((hote, port))
connexion_principale.listen(5)
print("Le serveur écoute à présent sur le port {}".format(port))
connexion_avec_client, infos_connexion = connexion_principale.accept()
msg_recu = b""
Main()
如果有人有办法, 再见
目前没有回答
相关问题 更多 >
编程相关推荐