Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Am o mica problema de transmisie a datelor de pe server Python pe client Java
Last Updated: May 14 2018 20:35, Started by
ursudepadure
, May 14 2018 18:50
·
0
#1
Posted 14 May 2018 - 18:50
Am postat ceva pe "Programe facute noaptea acasa" intrucat am crezut ca e simplu si de amatori dar am fost trimis aici. De atunci am mai studiat si am modifcat mult sursa. Ce am eu nevoie nu cred ca necesita mare efort din partea cuiva cu mai multa experienta. O chestie de cateva minute, un sfat rapid.
Am o mica problema de transmisie a datelor de pe server Python pe client Java scris in Android. Vreau sa controlez pinii digitali a unui dispozitiv raspberry pi care are preinstalat Python. Am scris un server si un client minimal in python si m-am prins in linii mari cum functioneaza, am reusit sa fac un program de "chat". Totul ca sa ma conving ca serverul scris in Python stie sa comunice cu alti clienti. Am reusit sa controlez pinii din raspberry de pe un dispozitiv Android cu un program scris in Java dar numai unidirectional. Nu am reusit sa fac cumva sa primesc mesaje de la server. Cu alte cuvinte nu voi putea transmite nimic de la senzori catre dispozitivul Android (tableta/telefon). Ar fi ok sa postez aici sursele (sunt mici, reduse cat am putut de mult la partea la care nu ma pricep)? |
#2
Posted 14 May 2018 - 19:17
cu HTTP2 https://www.smashing...p2-server-push/
cu HTTP 1.1 faci pe client o functie de poll care verifica din cand in cand daca s-a schimbat ceva. https://davidwalsh.n...ascript-polling |
#3
Posted 14 May 2018 - 20:35
Sunt multe solutii si eu am una la cheie, cu sursa gata scrisa pe care o pot modifca usor cu un server Flask si interfata in Browser. Eu nu folosesc insa decat TCP pentru aceasta aplicatie cu codul pentru client scris in Java Android SDK. Asta pentru ca am nevoie de o reprezentare 3D pe care m-am chinuit din greu sa o scriu cu OpenGL ES. Dar am nevoie de valori trimise de senzori ca sa reprezint acel obiect in spatiu si alte grafice, numere, etc. Eu am reusit doar sa trimit date catre un mic server minimal in Python care le poate trimite la pinii sai digitali.
Ce am reusit pana acum este in parte aici, adica un cod minimal cu ce ma intereseaza, nu cu intreg proiectul: Am doua clase de baza: MainActivity unde sa zicem ca am un buton button1 si un EditText (un fel de textarea in alte limbaje sau texbox). Ca sa transmit date folosesc aceasta clasa numita SendMessage. //CA SA PROCESEZ DATELE RETURNATA DE CATRE CE SE INTAMPLA IN BACKGROUND FOLOSESC AsynkTask public class SendMessage extends AsyncTask<String, Void, Void> { private Exception exceptie; @Override protected Void doInBackground(String...params) { try { // ANDROID SDK TE "OBLIGA" SA FOLOSESTI "exception handling" try { Socket socket = new Socket("192.168.1.92", 7800); // MA CONECTEZ FARA NICI O PROBLEMA LA SERVERUL SCRIS IN PYTHON PrintWriter catreServer = new PrintWriter( new OutputStreamWriter(socket.getOutputStream())); //APELEZ O METODA A CLASEI Socket CA SA TRANSMIT catreServer.print(params[0]); // ASTA FACE POSIBILA FOLOSIREA CLASEI CU "execute" catreServer.flush(); // FAC CURAT IN PrintWriter } catch (IOException e) { e.printStackTrace(); } }catch (Exception e) { this.exceptie=e; return null; } return null; } } // CA SA TRIMIT CONTINUTUL (TEXTUL) DIN TextView CU EVENIMENTUL onclick, in clasa // MainActivity am urmatorul cod: buttonr.setonclickListener(new View.onclickListener() { @Override public void onclick(View v) { new ReceiveMessage().execute(txtView.getText().toString()); // INSTANTIEZ CLASA DE MAI SUS editText.getText().clear(); // FAC CURAT IN editText CARE ESTE DE TIPUL TextView } }); // EI BINE, SE TRIMIT MESAJE, POT CONTROLA LEDURI, ETC, CU BUTOANE FRUMOS COLORATE DIN ANDROID. DAR INVERS...? // AR FI DE AJUNS CHIAR PENTRU O AUTOMATIZARE SIMPLA. EU AM MARE NEVOIE DE CE IMI TRANSMIT SENZORII. //Ei bine, am facut o clasa "ReceiveMessage" care cred ca nu mai returneaza null. Acolo ma incurc dar o sa mai studiez pana maine problema. //In momentul cand un alt buton este apasat se face conectarea si imediat dupa conectare, pentru testare serverul trimite un mesaj de salut. // In principiu am creat tot o clasa ca cea de mai sus numita ReceiveMessage care are o metoda "doInBackground protected String doInBackground(String... params) { try { try { Socket s = new Socket("192.168.1.92", 7800); while (true) { //s = ss.accept(); isr = new InputStreamReader(s.getInputStream()); bufferedReader = new BufferedReader(isr); message = bufferedReader.readLine(); MENTIONEZ CA ACESTEA SUNT DOAR INCERCARI SEPARATE DE PROIECTUL PRINCIPAL SI MINIMALIZATE LA MAXIM PENTRU A PUTEA INTREBA EXACT CE NU STIU SAU NU IMI FUNCTIONEAZA. VA MULTUMESC! |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users