From b7a0265261afa0ca637ee9d79cfbd58203b82b33 Mon Sep 17 00:00:00 2001 From: LMAGallois Date: Fri, 4 Dec 2020 17:14:19 +0100 Subject: [PATCH] messageTcp --- Application/Clavardage/bin/User.class | Bin 9327 -> 10491 bytes Application/Clavardage/src/User.java | 62 +++++++++++++++- .../src/UserListeningThreadTCP.java | 66 +++++++++++++++++- 3 files changed, 125 insertions(+), 3 deletions(-) diff --git a/Application/Clavardage/bin/User.class b/Application/Clavardage/bin/User.class index 30a3535168019561cc962f161d25e77f0686437d..375387d3d28e126abe8b7997b1bee32f7b1a0946 100644 GIT binary patch delta 5316 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 uEO)3MTi~?QFh)-?H;y=3C;6Lq-!;{O0!NGneO delta 4085 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 HF1!8%1lGsN diff --git a/Application/Clavardage/src/User.java b/Application/Clavardage/src/User.java index 9f77822..da3bd91 100644 --- a/Application/Clavardage/src/User.java +++ b/Application/Clavardage/src/User.java @@ -1,5 +1,10 @@ +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; import java.net.*; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; // Import the Scanner class import java.util.ArrayList; // import the ArrayList class @@ -119,6 +124,9 @@ public class User{ * Demande à l'utilisateur de rentrer un pseudo et validation de ce dernier en demandant aux utilisateurs distants leurs informations * On regarde si le pseudo est bien différent de l'ancien */ + + + private void setPseudo() throws IOException { String oldPseudo = this.pseudo; //Saves the old one for comparison @@ -161,6 +169,53 @@ public class User{ System.out.println("Your nickname : " + tmpPseudo + " is valid !"); } + public void TCPmessage(int index) throws IOException { + Socket link=null; + try { + link=new Socket(this.userChatList.get(index).addIP,this.portTCP); + + System.out.println("Server is listening on port"+this.portTCP+"of localhost"); + }catch(IOException e) { + + System.out.println("Server is not listening on port"+this.portTCP+" of localhost"); + + } + BufferedReader in=null; + try { + in = new BufferedReader(new InputStreamReader(link.getInputStream())); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + PrintWriter out = new PrintWriter(link.getOutputStream(),true); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + String input; + try { + while (!(input=in.readLine()).equals("end")) { + System.out.print("client_recoit:"+input); + } + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + /*or (int i=0; i<4; i++) { + System.out.println("client envoie"); + out.println("coucou \n"); + } + out.println("end");*/ + try { + link.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + /* validatePseudo * $parametres * *tmpPseudo : String => Le pseudo à valider @@ -342,7 +397,7 @@ public class User{ * $description * Laisse l'utilisateur choisir parmis la liste d'utilisateur actif celui avec lequel il souhaite échangé via un chat */ - public void getOneActiveUser() throws UnknownHostException { + public void getOneActiveUser() throws IOException { this.printRemoteUserList(); Scanner sc2= new Scanner(System.in); System.out.println("Please, enter index of one active user that you saw on the list to start a conversation with:"); @@ -360,6 +415,8 @@ public class User{ else { System.out.println("Wrong index (no active at index number "+index+" )"); } + + this.TCPmessage(index); //sc2.close(); } @@ -378,6 +435,9 @@ public class User{ System.out.println("Sleep mode for 5 seconds"); Thread.sleep(5000); // On ferme les différents threads et socket d'écoute + + + usr1.threadListeningUDP.close(); usr2.threadListeningUDP.close(); usr3.threadListeningUDP.close(); diff --git a/Application/Clavardage/src/UserListeningThreadTCP.java b/Application/Clavardage/src/UserListeningThreadTCP.java index 6372f6f..0955278 100644 --- a/Application/Clavardage/src/UserListeningThreadTCP.java +++ b/Application/Clavardage/src/UserListeningThreadTCP.java @@ -1,8 +1,16 @@ +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; +import java.net.ServerSocket; +import java.net.Socket; import java.net.UnknownHostException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; public class UserListeningThreadTCP extends Thread{ @@ -23,7 +31,10 @@ public class UserListeningThreadTCP extends Thread{ this.dgramSocket = new DatagramSocket(this.myUser.getPortTCP(),this.myUser.getAddIP()); } catch (IOException e) { e.printStackTrace(); - } + } + + + } /* run @@ -36,7 +47,57 @@ public class UserListeningThreadTCP extends Thread{ // Tant que l'utilisateur est actif on attends la demande de nouvelle conversation while(true) { - + + ServerSocket servSocket=null; + try { + servSocket = new ServerSocket(myUser.portTCP); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + Socket link=null; + try { + link = servSocket.accept(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + BufferedReader in =new BufferedReader(new InputStreamReader(link.getInputStream())); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + PrintWriter out=null; + try { + out = new PrintWriter(link.getOutputStream(),true); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + out.println("awaiting data..."); + DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + Date date = new Date(); + + out.println(dateFormat.format(date)); + out.println("end"); + String input; + /*while (!(input=in.readLine()).equals("end")) { + System.out.print("server_recoit:"+input); + }*/ + try { + link.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + servSocket.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } } @@ -55,4 +116,5 @@ public class UserListeningThreadTCP extends Thread{ e.printStackTrace(); } } + } \ No newline at end of file