1
0
Ответвление 0
Projet_COO_POO/chatGit/src/network/TCPChat.java

120 строки
3,1 КиБ
Java
Исходный Авторство История

package network;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.ArrayList;
import controller.Agent;
import model.Contact;
import model.MessageChat;
public class TCPChat extends Thread{
private ArrayList<MessageChat> listeMessagesRecu;
private Socket socket;
private int destID;
private PropertyChangeSupport support;
//connexion faite par un autre user
public TCPChat(Socket socket) {
this.socket = socket;
listeMessagesRecu = new ArrayList<MessageChat>();
this.support = new PropertyChangeSupport(this);
this.start();
}
//connexion faite par le user
public TCPChat(Contact destUser, int destID) throws IOException {
this.socket = new Socket(destUser.getAddress(), destUser.getPort());
listeMessagesRecu = new ArrayList<MessageChat>();
this.destID = destID;
this.support = new PropertyChangeSupport(this);
this.start();
}
public TCPChat(InetAddress adr, int port) throws IOException {
this.socket = new Socket(adr, port);
listeMessagesRecu = new ArrayList<MessageChat>();
this.support = new PropertyChangeSupport(this);
this.start();
}
public void addPropertyChangeListener(PropertyChangeListener pcl) {
this.support.addPropertyChangeListener("Msg TCP Recu", pcl);
}
@Override
public void run() {
BufferedReader in;
try {
in = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
while(true) {
try {
String input = in.readLine();
MessageChat msgRecu = new MessageChat(this.socket.getInetAddress(), this.socket.getLocalAddress(), this.socket.getPort(), this.socket.getLocalPort(), 0, input);
listeMessagesRecu.add(msgRecu);
//System.out.println("fire msg tcp recu");
this.support.firePropertyChange("Msg TCP Recu", true, false);
//if (!msgRecu.getMessage().equals(null)) {
//System.out.println("Message re<72>u : "+msgRecu.getMessage() );
//}
} catch (IOException e) {
System.out.println("Cr<EFBFBD>ation et read du in impossible");
e.printStackTrace();
}
}
} catch (IOException e1) {
System.out.println("pb cr<63>ation in");
e1.printStackTrace();
}
}
public void sendMsg(String message) throws IOException {
PrintWriter out = new PrintWriter(this.socket.getOutputStream(),true);
out.println(message);
//System.out.println("Message envoy<6F> : "+message);
}
public MessageChat getMessageRecu() {
return listeMessagesRecu.remove(0);
}
public ArrayList<MessageChat> getListeMessagesRecu() {
return listeMessagesRecu;
}
public void setListeMessagesRecu(ArrayList<MessageChat> listeMessagesRecu) {
this.listeMessagesRecu = listeMessagesRecu;
}
public Socket getSocket() {
return socket;
}
public void setSocket(Socket socket) {
this.socket = socket;
}
public int getDestID() {
return destID;
}
public void setDestID(int destID) {
this.destID = destID;
}
public boolean isConnected() {
return this.socket != null && socket.isConnected() && !socket.isClosed();
}
}