Commit 8d957e00785850adeba3efb0e3d34e1885dfb86f
1 parent
493ea8e7
git-svn-id: svn://imanolbarba.net/PAD@26 c2ee353e-ed0d-4329-bf56-03aec153487f
Showing
9 changed files
with
43 additions
and
24 deletions
JChatClient/bin/client
No preview for this file type
JChatClient/src/client.cpp
@@ -124,7 +124,6 @@ void* recvThread(void* args) | @@ -124,7 +124,6 @@ void* recvThread(void* args) | ||
124 | } | 124 | } |
125 | else | 125 | else |
126 | { | 126 | { |
127 | - *(t_arg->s) >> recv; | ||
128 | cout << recv << endl; | 127 | cout << recv << endl; |
129 | } | 128 | } |
130 | } | 129 | } |
@@ -173,6 +172,7 @@ int main() | @@ -173,6 +172,7 @@ int main() | ||
173 | 172 | ||
174 | /* TODO | 173 | /* TODO |
175 | * | 174 | * |
175 | + * disconnecting causes some real shit | ||
176 | * list nicks | 176 | * list nicks |
177 | * unicast message | 177 | * unicast message |
178 | */ | 178 | */ |
179 | \ No newline at end of file | 179 | \ No newline at end of file |
JChatServer/bin/pad/prac2/Connection.class
No preview for this file type
JChatServer/bin/pad/prac2/MySocket.class
No preview for this file type
JChatServer/bin/pad/prac2/Server.class
No preview for this file type
JChatServer/src/pad/prac2/Connection.java
1 | package pad.prac2; | 1 | package pad.prac2; |
2 | 2 | ||
3 | +import java.io.IOException; | ||
4 | + | ||
3 | public class Connection extends Thread | 5 | public class Connection extends Thread |
4 | { | 6 | { |
5 | private MySocket socket; | 7 | private MySocket socket; |
@@ -13,7 +15,7 @@ public class Connection extends Thread | @@ -13,7 +15,7 @@ public class Connection extends Thread | ||
13 | sleep = true; | 15 | sleep = true; |
14 | } | 16 | } |
15 | 17 | ||
16 | - public void sendMessage(String message) | 18 | + public void sendMessage(String message) throws IOException |
17 | { | 19 | { |
18 | socket.sendMsg(message); | 20 | socket.sendMsg(message); |
19 | } | 21 | } |
@@ -67,22 +69,32 @@ public class Connection extends Thread | @@ -67,22 +69,32 @@ public class Connection extends Thread | ||
67 | str = socket.recvMsg(); | 69 | str = socket.recvMsg(); |
68 | if(str != null) | 70 | if(str != null) |
69 | { | 71 | { |
70 | - if(str == "/disconnect") | ||
71 | - { | ||
72 | - socket.sendMsg("DISC_OK"); | ||
73 | - kill = true; | ||
74 | - System.out.println(serv.getNickname(this) + " disconnected"); | ||
75 | - } | ||
76 | - else if(str == "/exit") | 72 | + try |
77 | { | 73 | { |
78 | - socket.sendMsg("EXIT_OK"); | ||
79 | - kill = true; | ||
80 | - System.out.println(serv.getNickname(this) + " disconnected"); | 74 | + if(str.equals("/disconnect")) |
75 | + { | ||
76 | + socket.sendMsg("DISC_OK"); | ||
77 | + kill = true; | ||
78 | + System.out.println(serv.getNickname(this) + " disconnected"); | ||
79 | + break; | ||
80 | + } | ||
81 | + else if(str.equals("/exit")) | ||
82 | + { | ||
83 | + socket.sendMsg("EXIT_OK"); | ||
84 | + kill = true; | ||
85 | + System.out.println(serv.getNickname(this) + " disconnected"); | ||
86 | + break; | ||
87 | + } | ||
88 | + else | ||
89 | + { | ||
90 | + System.out.println("FROM " + serv.getNickname(this) + ": " + str); | ||
91 | + serv.sendToChat(this,str); | ||
92 | + } | ||
81 | } | 93 | } |
82 | - else | 94 | + catch(IOException ioExc) |
83 | { | 95 | { |
84 | - System.out.println("FROM " + serv.getNickname(this) + ": " + str); | ||
85 | - serv.sendToChat(this,str); | 96 | + System.out.println("TCP: Error writing to socket"); |
97 | + break; | ||
86 | } | 98 | } |
87 | } | 99 | } |
88 | else | 100 | else |
JChatServer/src/pad/prac2/JChat.java
JChatServer/src/pad/prac2/MySocket.java
@@ -3,15 +3,15 @@ package pad.prac2; | @@ -3,15 +3,15 @@ package pad.prac2; | ||
3 | import java.io.BufferedReader; | 3 | import java.io.BufferedReader; |
4 | import java.io.IOException; | 4 | import java.io.IOException; |
5 | import java.io.InputStreamReader; | 5 | import java.io.InputStreamReader; |
6 | -import java.io.PrintWriter; | 6 | +import java.io.OutputStream; |
7 | import java.net.InetSocketAddress; | 7 | import java.net.InetSocketAddress; |
8 | import java.net.Socket; | 8 | import java.net.Socket; |
9 | import java.net.SocketAddress; | 9 | import java.net.SocketAddress; |
10 | 10 | ||
11 | public class MySocket extends Socket | 11 | public class MySocket extends Socket |
12 | { | 12 | { |
13 | - private PrintWriter output; | ||
14 | private BufferedReader input; | 13 | private BufferedReader input; |
14 | + private OutputStream output; | ||
15 | 15 | ||
16 | public MySocket() | 16 | public MySocket() |
17 | { | 17 | { |
@@ -36,7 +36,7 @@ public class MySocket extends Socket | @@ -36,7 +36,7 @@ public class MySocket extends Socket | ||
36 | { | 36 | { |
37 | try | 37 | try |
38 | { | 38 | { |
39 | - output = new PrintWriter(super.getOutputStream()); | 39 | + output = super.getOutputStream(); |
40 | input = new BufferedReader(new InputStreamReader(super.getInputStream())); | 40 | input = new BufferedReader(new InputStreamReader(super.getInputStream())); |
41 | } | 41 | } |
42 | catch(IOException ioExc) | 42 | catch(IOException ioExc) |
@@ -59,11 +59,11 @@ public class MySocket extends Socket | @@ -59,11 +59,11 @@ public class MySocket extends Socket | ||
59 | } | 59 | } |
60 | } | 60 | } |
61 | 61 | ||
62 | - public void sendMsg(String msg) | 62 | + public void sendMsg(String msg) throws IOException |
63 | { | 63 | { |
64 | String length = new Integer(msg.length()).toString(); | 64 | String length = new Integer(msg.length()).toString(); |
65 | - this.write(length+'\0', length.length()+1); | ||
66 | - this.write(msg,msg.length()); | 65 | + this.write(length + '\0'); |
66 | + this.write(msg); | ||
67 | } | 67 | } |
68 | 68 | ||
69 | public String recvMsg() | 69 | public String recvMsg() |
@@ -80,9 +80,9 @@ public class MySocket extends Socket | @@ -80,9 +80,9 @@ public class MySocket extends Socket | ||
80 | return str; | 80 | return str; |
81 | } | 81 | } |
82 | 82 | ||
83 | - public void write(String str, int bytes) | 83 | + public void write(String str) throws IOException |
84 | { | 84 | { |
85 | - output.print(str.substring(0,bytes)); | 85 | + output.write(str.getBytes()); |
86 | } | 86 | } |
87 | 87 | ||
88 | public String read(int bytes) | 88 | public String read(int bytes) |
JChatServer/src/pad/prac2/Server.java
@@ -44,7 +44,7 @@ public class Server | @@ -44,7 +44,7 @@ public class Server | ||
44 | } | 44 | } |
45 | } | 45 | } |
46 | 46 | ||
47 | - public void sendToChat(Connection origin, String message) | 47 | + public void sendToChat(Connection origin, String message) throws IOException |
48 | { | 48 | { |
49 | lock.lock(); | 49 | lock.lock(); |
50 | String nickname = activeConnections.get(origin); | 50 | String nickname = activeConnections.get(origin); |