Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
Schimbare introducere consola cu interfata grafica.
Last Updated: May 22 2017 08:56, Started by
Ludovico
, May 16 2017 13:55
·
0
#1
Posted 16 May 2017 - 13:55
Salut. Am facut un program in java ce trimite fisiere ( de tip txt ) de la un server la un client si de la client la server. Comenzile sunt pe baza de tastatura iar mie imi trebuie interfata grafica. Sunt incepator, deci sfaturile sau link-urile nu ma ajuta. Se poate mura in gura va rog?
Server-ul import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { private static ServerSocket serverSocket; private static Socket clientSocket = null; public static void main(String[] args) throws IOException { try { serverSocket = new ServerSocket(5555); System.out.println("Server started."); } catch (Exception e) { System.err.println("Port in use."); System.exit(1); } while (true) { try { clientSocket = serverSocket.accept(); System.out.println("Conection Accept : " + clientSocket); Thread t = new Thread(new ClientConnection(clientSocket)); t.start(); } catch (Exception e) { System.err.println("Conection Error."); } } } } Conectarea clientului. import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; public class ClientConnection implements Runnable { private Socket clientSocket; private BufferedReader in = null; public ClientConnection(Socket client) { this.clientSocket = client; } @Override public void run() { boolean done = false; try{ in = new BufferedReader(new InputStreamReader( clientSocket.getInputStream())); } catch(Exception e){} String clientSelection; while (!done) { try { clientSelection = ""; while ((clientSelection = in.readLine()) != null) { switch (clientSelection) { case "send": receiveFile(); break; case "get": String outGoingFileName; while ((outGoingFileName = in.readLine()) != null) { sendFile(outGoingFileName); } break; default: System.out.println("Wrong Command..."); break; } } } catch (IOException ex) { System.err.println("Erro--" + ex); } } } public void receiveFile() { try { int bytesRead; DataInputStream clientData = new DataInputStream( clientSocket.getInputStream()); String fileName = clientData.readUTF(); OutputStream output = new FileOutputStream( ("received_from_client_" + fileName)); long size = clientData.readLong(); byte[] buffer = new byte[1024]; while (size > 0 && (bytesRead = clientData.read(buffer, 0, (int) Math.min(buffer.length, size))) != -1) { output.write(buffer, 0, bytesRead); size -= bytesRead; } output.flush(); output.close(); System.out.println("File " + fileName + " received from client."); } catch (IOException ex) { System.err.println("Error." + ex); } } public void sendFile(String fileName) { try { File myFile = new File(fileName); byte[] mybytearray = new byte[(int) myFile.length()]; FileInputStream fis = new FileInputStream(myFile); BufferedInputStream bis = new BufferedInputStream(fis); DataInputStream dis = new DataInputStream(bis); dis.readFully(mybytearray, 0, mybytearray.length); OutputStream os = clientSocket.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeUTF(myFile.getName()); dos.writeLong(mybytearray.length); dos.write(mybytearray, 0, mybytearray.length); dos.flush(); System.out.println("File " + fileName + " send to client."); } catch (Exception e) { System.err.println("Error! " + e); } } } Client import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.Socket; import java.util.logging.Level; import java.util.logging.Logger; public class Client { private static Socket sock; private static String fileName; private static String newName; private static BufferedReader bufferReader; private static PrintStream os; public static void main(String[] args) throws IOException { try { sock = new Socket("192.168.100.210", 5555); bufferReader = new BufferedReader(new InputStreamReader(System.in)); } catch (Exception e) { System.err.println("Error - Try again."); System.exit(1); } os = new PrintStream(sock.getOutputStream()); boolean done = false; while (!done) { try { switch (selectAction()) { case "send": os.println("send"); sendFile(); break; case "get": os.println("get"); System.err.print("File Name: "); fileName = bufferReader.readLine(); os.println(fileName); receiveFile(fileName); break; case "exit": done = true; os.println("exit"); System.out.println("Connection closed"); break; } } catch (Exception e) { System.err.println("Wrong command"); } } sock.close(); } public static String selectAction() throws IOException { System.out.println(""); System.out.println("send - Send File."); System.out.println("get - Get File."); System.out.println("exit - Exit."); System.out.print("\nSelect one Option: "); return bufferReader.readLine(); } public static void sendFile() { try { System.err.print("File Name: "); fileName = bufferReader.readLine(); File myFile = new File(fileName); byte[] mybytearray = new byte[(int) myFile.length()]; FileInputStream fis = new FileInputStream(myFile); BufferedInputStream bis = new BufferedInputStream(fis); DataInputStream dis = new DataInputStream(bis); dis.readFully(mybytearray, 0, mybytearray.length); OutputStream os = sock.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeUTF(myFile.getName()); dos.writeLong(mybytearray.length); dos.write(mybytearray, 0, mybytearray.length); dos.flush(); System.out.println("File " + fileName + " send to server."); } catch (Exception e) { System.err.println("ERROR! " + e); } } public static void receiveFile(String fileName) { try { int bytesRead; InputStream in = sock.getInputStream(); DataInputStream clientData = new DataInputStream(in); fileName = clientData.readUTF(); OutputStream output = new FileOutputStream( ("received_from_server_" + fileName)); long size = clientData.readLong(); byte[] buffer = new byte[1024]; while (size > 0 && (bytesRead = clientData.read(buffer, 0, (int) Math.min(buffer.length, size))) != -1) { output.write(buffer, 0, bytesRead); size -= bytesRead; } output.flush(); System.out .println("File " + fileName + " received from Server."); } catch (IOException ex) { Logger.getLogger(ClientConnection.class.getName()).log(Level.SEVERE, null, ex); } } } Ip-ul este al meu, nu am incercat cu localhost. Se face conversia fisierul in biti si la primire din biti inapoi in fisier. Am nevoie de o interfata pentru comenzile send, get, exit. Ma poate ajuta cineva? Va rog. |
#2
Posted 16 May 2017 - 15:43
Pai daca tu ai scris acel cod de ce nu vrei sa citesti si despre cum se face o interfata? Doar poti.
|
#3
Posted 16 May 2017 - 16:50
#4
Posted 16 May 2017 - 18:53
@Ludovico, de unde ai luat codul ala? Seamana cu o anumita tema de la o anumita facultate.
Edited by IonutYo, 16 May 2017 - 18:53. |
#5
Posted 18 May 2017 - 11:06
neagu_laurentiu, on 16 mai 2017 - 15:43, said:
Pai daca tu ai scris acel cod de ce nu vrei sa citesti si despre cum se face o interfata? Doar poti. OriginalCopy, on 16 mai 2017 - 16:50, said:
Mura în gură te-ar ajuta momentan, însă nu pe termen lung în cariera ta. De ce nu plusezi, cu o atitudine profesionistă? |
#6
Posted 22 May 2017 - 08:56
Ludovico, on 18 mai 2017 - 11:06, said:
Stiu sa fac o interfata dar nu stiu cum sa imi adaptez contul pentru asa ceva. Imi trebuie ceva simplu. sau folosesti FrontController Design Pattern(atentie la Dispatcher ca acolo e toata smecheria): https://www.tutorial...ler_pattern.htm In cazul tau, inlocuitesti StudenView cu "Your-console-stuff" si HomeView cu "Your-GUI-Stuff" De asemeni va trebui sa adaptezi FrontControlleru Design Patternul pentru proiectul tau.Evident ca implementarea FrontControllerului in cazul tau nu o sa fie EXACT cum este dat in exemplu. Dispatcher - Front Controller may use a dispatcher object which can dispatch the request(in cazul tau acest request va fi "comanda" de schimbare intre interfata grafica si console) to corresponding specific handler. (in cazul tau specific handler reprezinta implementarea pt consola fie implementarea pt interfata grafica) Atentie insa, pentru GUI va trebui sa inveti ffie Swing (de obicei asta este varianta Default, http://docs.oracle.c...torial/uiswing/ ) sau javaFX https://docs.oracle....echnologies.htm In ambele cazuri, codul tau de pe GUI nu va scapa de crearea unor event-listenere pt ce actiuni vrei tu . Tinand cont de ce vrei tu VS cunostiintele tale de acum, vei zabovi destul pe aceasta tema de casa Mult succes. PS: nu inteleg pe profesorul vostru . Cum de ti-a data tie un astfel de proiect care se bazeaza foarte mult pe design pattern si OODA(object oriented Design Analysi) in conditiile in care tu ai probleme fundamentalale in intelegerea rolului unui interfete/clase abstracte. Ce sa mai vorbim despre Swing (care automat te trece pe java multithreading,: new Runnable() { public void button() { actiuneButonApasat();}});) ca Swing numai asa are. Apoi am observat in codul niste fielduri statice.Ai idee ca face o variabila statica in contextul multithreading ? Deci fie renunti la acele variabile statice fie pui mana si invet java multithreading si atunci cand pui o variabila statica tinand cont de contexul multithreading atunci stii foarte bine de ce ai pus-o Ca sa-ti faci viata mai usoara: FrontController DP prezentare: [ https://www.youtube-nocookie.com/embed/mzcso6ZKoqY?feature=oembed - Pentru incarcare in pagina (embed) Click aici ] FrontController implementare: [ https://www.youtube-nocookie.com/embed/NWNNsbMsrq4?feature=oembed - Pentru incarcare in pagina (embed) Click aici ] Swing: [ https://www.youtube-nocookie.com/embed/I41_sdkuzOY?feature=oembed - Pentru incarcare in pagina (embed) Click aici ] JavaFX: [ https://www.youtube-nocookie.com/embed/9YrmON6nlEw?feature=oembed - Pentru incarcare in pagina (embed) Click aici ] PS: front-controller nu este singurul design pattern prin care poti sa implementezi.Mai sunt si altele.Dar asa e cel mai simplu pentru tine Edited by lightpoint, 22 May 2017 - 09:19. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users