bugfixes TCP (ter)
Šī revīzija ir iekļauta:
vecāks
4fe854e2f5
revīzija
fbf236692a
1 mainīti faili ar 22 papildinājumiem un 8 dzēšanām
|
@ -51,14 +51,16 @@ import chat.Message;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
class ReceiveThread extends Thread {
|
class ReceiveThread extends Thread {
|
||||||
|
User user;
|
||||||
Socket socket;
|
Socket socket;
|
||||||
JTextArea displayArea;
|
JTextArea displayArea;
|
||||||
JTextArea knownUsersPanel;
|
JTextArea knownUsersPanel;
|
||||||
List<User> known_users;
|
List<User> known_users;
|
||||||
List<Socket> dest_sockets;
|
List<Socket> dest_sockets;
|
||||||
|
|
||||||
ReceiveThread(Socket in_socket, JTextArea in_displayArea, List<User> in_known_users, JTextArea in_knownUsersPanel, List<Socket> in_dest_sockets)
|
ReceiveThread(User in_user, Socket in_socket, JTextArea in_displayArea, List<User> in_known_users, JTextArea in_knownUsersPanel, List<Socket> in_dest_sockets)
|
||||||
{
|
{
|
||||||
|
user = in_user;
|
||||||
socket = in_socket;
|
socket = in_socket;
|
||||||
displayArea = in_displayArea;
|
displayArea = in_displayArea;
|
||||||
knownUsersPanel = in_knownUsersPanel;
|
knownUsersPanel = in_knownUsersPanel;
|
||||||
|
@ -97,13 +99,17 @@ class ReceiveThread extends Thread {
|
||||||
{
|
{
|
||||||
knownUsersPanel.append(" " + u.getName() + " \n");
|
knownUsersPanel.append(" " + u.getName() + " \n");
|
||||||
}
|
}
|
||||||
|
if(!message.getAuthor().equals(user.getName()))
|
||||||
|
{
|
||||||
|
socket.close();
|
||||||
|
dest_sockets.remove(socket);
|
||||||
|
}
|
||||||
exit = true;
|
exit = true;
|
||||||
}
|
}
|
||||||
displayArea.setCaretPosition(displayArea.getDocument().getLength());
|
displayArea.setCaretPosition(displayArea.getDocument().getLength());
|
||||||
}
|
}
|
||||||
|
|
||||||
socket.close();
|
|
||||||
dest_sockets.remove(socket);
|
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
|
@ -113,13 +119,15 @@ class ReceiveThread extends Thread {
|
||||||
}
|
}
|
||||||
|
|
||||||
class ConnectionListenerThread extends Thread {
|
class ConnectionListenerThread extends Thread {
|
||||||
|
User user;
|
||||||
JTextArea displayArea;
|
JTextArea displayArea;
|
||||||
JTextArea knownUsersPanel;
|
JTextArea knownUsersPanel;
|
||||||
List<User> known_users;
|
List<User> known_users;
|
||||||
List<Socket> dest_sockets;
|
List<Socket> dest_sockets;
|
||||||
|
|
||||||
ConnectionListenerThread(List<User> in_known_users, List<Socket> in_dest_sockets, JTextArea in_displayArea, JTextArea in_knownUsersPanel)
|
ConnectionListenerThread(User in_user, List<User> in_known_users, List<Socket> in_dest_sockets, JTextArea in_displayArea, JTextArea in_knownUsersPanel)
|
||||||
{
|
{
|
||||||
|
user = in_user;
|
||||||
known_users = in_known_users;
|
known_users = in_known_users;
|
||||||
dest_sockets = in_dest_sockets;
|
dest_sockets = in_dest_sockets;
|
||||||
displayArea = in_displayArea;
|
displayArea = in_displayArea;
|
||||||
|
@ -180,7 +188,7 @@ class ConnectionListenerThread extends Thread {
|
||||||
if(accepted)
|
if(accepted)
|
||||||
{
|
{
|
||||||
Socket s = (new ServerSocket(1237+(known_users.size()))).accept();
|
Socket s = (new ServerSocket(1237+(known_users.size()))).accept();
|
||||||
(new ReceiveThread(s, displayArea, known_users, knownUsersPanel, dest_sockets)).start();
|
(new ReceiveThread(user, s, displayArea, known_users, knownUsersPanel, dest_sockets)).start();
|
||||||
dest_sockets.add(s);
|
dest_sockets.add(s);
|
||||||
|
|
||||||
known_users.add(new User(username));
|
known_users.add(new User(username));
|
||||||
|
@ -313,7 +321,7 @@ public class NetworkClient {
|
||||||
{
|
{
|
||||||
Socket s = new Socket(a, (1237+usernameList.length));
|
Socket s = new Socket(a, (1237+usernameList.length));
|
||||||
dest_sockets.add(s);
|
dest_sockets.add(s);
|
||||||
(new ReceiveThread(s, chatText, known_users, knownUsersPanel, dest_sockets)).start();
|
(new ReceiveThread(user, s, chatText, known_users, knownUsersPanel, dest_sockets)).start();
|
||||||
}
|
}
|
||||||
Collections.sort(known_users);
|
Collections.sort(known_users);
|
||||||
connected = true;
|
connected = true;
|
||||||
|
@ -341,7 +349,7 @@ public class NetworkClient {
|
||||||
if(connected)
|
if(connected)
|
||||||
{
|
{
|
||||||
|
|
||||||
(new ConnectionListenerThread(known_users, dest_sockets, chatText, knownUsersPanel)).start();
|
(new ConnectionListenerThread(user, known_users, dest_sockets, chatText, knownUsersPanel)).start();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -349,7 +357,7 @@ public class NetworkClient {
|
||||||
(new ListenerStartThread(s1, dest_sockets)).start();
|
(new ListenerStartThread(s1, dest_sockets)).start();
|
||||||
|
|
||||||
Socket s2 = new Socket("25.67.234.235", 1237+(known_users.size()));
|
Socket s2 = new Socket("25.67.234.235", 1237+(known_users.size()));
|
||||||
(new ReceiveThread(s2, chatText, known_users, knownUsersPanel, dest_sockets)).start();
|
(new ReceiveThread(user, s2, chatText, known_users, knownUsersPanel, dest_sockets)).start();
|
||||||
}
|
}
|
||||||
catch(IOException e)
|
catch(IOException e)
|
||||||
{
|
{
|
||||||
|
@ -394,6 +402,12 @@ public class NetworkClient {
|
||||||
void disconnect()
|
void disconnect()
|
||||||
{
|
{
|
||||||
send(null);
|
send(null);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Thread.sleep(1000);
|
||||||
|
}
|
||||||
|
catch(InterruptedException e) {}
|
||||||
|
|
||||||
for(Socket s:dest_sockets)
|
for(Socket s:dest_sockets)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
Notiek ielāde…
Atsaukties uz šo jaunā problēmā