]> git.somenet.org - pub/jan/dslab.git/blob - ue1/src/Client/TCP.java
all the dslab stuff
[pub/jan/dslab.git] / ue1 / src / Client / TCP.java
1 package Client;\r
2 \r
3 import java.io.*;\r
4 import java.util.*;\r
5 import java.net.*;\r
6 /*\r
7 * >--TCP--<\r
8 * Author: Someone\r
9 */\r
10 public class TCP implements Runnable{\r
11   private Socket $sock = null;\r
12   private InputStream $in = null;\r
13   private OutputStream $out = null;\r
14 \r
15 \r
16 public TCP(String $server, int $port)throws Exception{\r
17   $sock = new Socket($server, $port);\r
18   $in = $sock.getInputStream();\r
19   $out = $sock.getOutputStream();\r
20   new Thread(this).start();\r
21 }\r
22 \r
23 public void run(){\r
24   try{\r
25     while($sock != null){\r
26       receive();\r
27     }\r
28   }catch(Exception $e){$e.printStackTrace();}\r
29 }\r
30 \r
31 public void send(String $msg){\r
32   try{\r
33     byte[] $len = Helper.int2ba($msg.length());\r
34     $out.write($len);\r
35     $out.flush();\r
36     $out.write($msg.getBytes());\r
37     $out.flush();\r
38   }catch(Exception $e){$e.printStackTrace();}\r
39 }\r
40 \r
41 public void receive()throws Exception{\r
42   int $len = Helper.ba2int(Helper.readBA($in, 4));\r
43   String $msg = new String(Helper.readBA($in, $len));\r
44   System.out.println($msg);\r
45 }\r
46 \r
47 public void shutdown(){\r
48   try{\r
49     send("CLIENT shutting down...");\r
50     $out.close();\r
51     $in.close();\r
52     $sock.close();\r
53     $sock = null;\r
54   }catch(Exception $e){$e.printStackTrace();}\r
55 }\r
56 \r
57 }