bugfixes TCP (4)
This commit is contained in:
parent
fbf236692a
commit
3c3a1fb0a9
1 changed files with 31 additions and 24 deletions
|
@ -124,14 +124,16 @@ class ConnectionListenerThread extends Thread {
|
||||||
JTextArea knownUsersPanel;
|
JTextArea knownUsersPanel;
|
||||||
List<User> known_users;
|
List<User> known_users;
|
||||||
List<Socket> dest_sockets;
|
List<Socket> dest_sockets;
|
||||||
|
int portNumber;
|
||||||
|
|
||||||
ConnectionListenerThread(User in_user, 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, int in_portNumber)
|
||||||
{
|
{
|
||||||
user = in_user;
|
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;
|
||||||
knownUsersPanel = in_knownUsersPanel;
|
knownUsersPanel = in_knownUsersPanel;
|
||||||
|
portNumber = in_portNumber;
|
||||||
}
|
}
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
|
@ -163,23 +165,6 @@ class ConnectionListenerThread extends Thread {
|
||||||
InetAddress clientAddress= request.getAddress();
|
InetAddress clientAddress= request.getAddress();
|
||||||
System.out.println("Received a request from " + username + "@" + clientAddress.getHostAddress());
|
System.out.println("Received a request from " + username + "@" + clientAddress.getHostAddress());
|
||||||
|
|
||||||
response = "";
|
|
||||||
for(User u:known_users)
|
|
||||||
{
|
|
||||||
response += u.getName() + " ";
|
|
||||||
}
|
|
||||||
response = response.trim();
|
|
||||||
response += ";";
|
|
||||||
for(Socket s:dest_sockets)
|
|
||||||
{
|
|
||||||
response += s.getInetAddress().getHostAddress() + " ";
|
|
||||||
}
|
|
||||||
response = response.trim();
|
|
||||||
System.out.println("Response :" + response + "!");
|
|
||||||
responseBytes = response.getBytes();
|
|
||||||
responsePacket = new DatagramPacket(responseBytes, responseBytes.length, clientAddress, 1337);
|
|
||||||
responseSocket.send(responsePacket);
|
|
||||||
|
|
||||||
accepted = true;
|
accepted = true;
|
||||||
for(User a:known_users)
|
for(User a:known_users)
|
||||||
{
|
{
|
||||||
|
@ -203,7 +188,27 @@ class ConnectionListenerThread extends Thread {
|
||||||
{
|
{
|
||||||
knownUsersPanel.append(" " + a.getName() + " \n");
|
knownUsersPanel.append(" " + a.getName() + " \n");
|
||||||
}
|
}
|
||||||
}
|
portNumber++;
|
||||||
|
}
|
||||||
|
response = "";
|
||||||
|
for(User u:known_users)
|
||||||
|
{
|
||||||
|
response += u.getName() + " ";
|
||||||
|
}
|
||||||
|
response = response.trim();
|
||||||
|
response += ";";
|
||||||
|
for(Socket s:dest_sockets)
|
||||||
|
{
|
||||||
|
response += s.getInetAddress().getHostAddress() + " ";
|
||||||
|
}
|
||||||
|
response = response.trim();
|
||||||
|
response += ";" + portNumber;
|
||||||
|
|
||||||
|
System.out.println("Response :" + response);
|
||||||
|
responseBytes = response.getBytes();
|
||||||
|
responsePacket = new DatagramPacket(responseBytes, responseBytes.length, clientAddress, 1337);
|
||||||
|
responseSocket.send(responsePacket);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch(SocketTimeoutException e) {}
|
catch(SocketTimeoutException e) {}
|
||||||
}
|
}
|
||||||
|
@ -274,7 +279,7 @@ public class NetworkClient {
|
||||||
DatagramPacket connectionRequest;
|
DatagramPacket connectionRequest;
|
||||||
DatagramPacket responsePacket;
|
DatagramPacket responsePacket;
|
||||||
|
|
||||||
|
int portNumber = 1237;
|
||||||
byte[] buffer1 = new byte[20000];
|
byte[] buffer1 = new byte[20000];
|
||||||
|
|
||||||
if(username == null || username.compareTo("") == 0)
|
if(username == null || username.compareTo("") == 0)
|
||||||
|
@ -304,6 +309,7 @@ public class NetworkClient {
|
||||||
|
|
||||||
String[] usernameList = response[0].split(" ");
|
String[] usernameList = response[0].split(" ");
|
||||||
String[] addressList = response[1].split(" ");
|
String[] addressList = response[1].split(" ");
|
||||||
|
portNumber = Integer.parseInt(response[2]);
|
||||||
|
|
||||||
|
|
||||||
for(String u:usernameList)
|
for(String u:usernameList)
|
||||||
|
@ -319,7 +325,7 @@ public class NetworkClient {
|
||||||
}
|
}
|
||||||
for(String a:addressList)
|
for(String a:addressList)
|
||||||
{
|
{
|
||||||
Socket s = new Socket(a, (1237+usernameList.length));
|
Socket s = new Socket(a, portNumber);
|
||||||
dest_sockets.add(s);
|
dest_sockets.add(s);
|
||||||
(new ReceiveThread(user, s, chatText, known_users, knownUsersPanel, dest_sockets)).start();
|
(new ReceiveThread(user, s, chatText, known_users, knownUsersPanel, dest_sockets)).start();
|
||||||
}
|
}
|
||||||
|
@ -349,14 +355,14 @@ public class NetworkClient {
|
||||||
if(connected)
|
if(connected)
|
||||||
{
|
{
|
||||||
|
|
||||||
(new ConnectionListenerThread(user, known_users, dest_sockets, chatText, knownUsersPanel)).start();
|
(new ConnectionListenerThread(user, known_users, dest_sockets, chatText, knownUsersPanel, portNumber)).start();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ServerSocket s1 = new ServerSocket(1237+(known_users.size()));
|
ServerSocket s1 = new ServerSocket(portNumber);
|
||||||
(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", portNumber);
|
||||||
(new ReceiveThread(user, 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)
|
||||||
|
@ -392,6 +398,7 @@ public class NetworkClient {
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
System.out.println(s.getInetAddress().getHostAddress() + ": local port " + s.getLocalPort() + ", remote port " + s.getPort());
|
||||||
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
|
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
|
||||||
out.writeObject(new Message(user.getName(), message));
|
out.writeObject(new Message(user.getName(), message));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue