TcpClient.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package rsx.tcp;
  7. import java.io.BufferedReader;
  8. import java.io.IOException;
  9. import java.io.InputStreamReader;
  10. import java.io.PrintWriter;
  11. import java.net.InetAddress;
  12. import java.net.Socket;
  13. import java.net.UnknownHostException;
  14. /**
  15. *
  16. * @author loquicom
  17. */
  18. public class TcpClient {
  19. /**
  20. * Adresse du serveur
  21. */
  22. protected InetAddress adr;
  23. /**
  24. * Port du serveur
  25. */
  26. protected int port;
  27. /**
  28. * Socket TCP
  29. */
  30. protected Socket socket;
  31. /**
  32. * Flux d'entrée
  33. */
  34. protected BufferedReader input;
  35. /**
  36. * Flux de sorti
  37. */
  38. protected PrintWriter output;
  39. /* --- Constructeurs --- */
  40. /**
  41. * Creation d'un client TCP
  42. * @param ip L'ip du serveur
  43. * @param port Le port du serveur
  44. * @throws UnknownHostException
  45. */
  46. public TcpClient(String ip, int port) throws UnknownHostException{
  47. this.adr = InetAddress.getByName(ip);
  48. this.port = port;
  49. }
  50. /**
  51. * Creation d'un client TCP
  52. * @param adr L'adresse du serveur
  53. * @param port Le port du serveur
  54. */
  55. public TcpClient(InetAddress adr, int port){
  56. this.adr = adr;
  57. this.port = port;
  58. }
  59. /* --- Methodes --- */
  60. /**
  61. * Connexion au serveur
  62. * @return Reussite
  63. */
  64. public boolean connect(){
  65. try {
  66. this.socket = new Socket(this.adr, this.port);
  67. this.input = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
  68. //this.output = new PrintWriter(new BufferedWriter(new OutputStreamWriter(this.socket.getOutputStream())));
  69. this.output = new PrintWriter(this.socket.getOutputStream());
  70. } catch (IOException ex) {
  71. System.err.println("Impossible de se connecter au serveur : " + ex.getMessage());
  72. return false;
  73. }
  74. return true;
  75. }
  76. /**
  77. * Envoi message au serveur
  78. * @param msg Le message
  79. * @return Reussite
  80. */
  81. public boolean send(String msg){
  82. output.print(msg);
  83. output.flush();
  84. return true;
  85. }
  86. /**
  87. * Reception d'un message du serveur
  88. * @return Le message ou null en cas d'erreur
  89. */
  90. public String receive(){
  91. try {
  92. return input.readLine();
  93. } catch (IOException ex) {
  94. System.err.println("Impossible de lire : " + ex.getMessage());
  95. return null;
  96. }
  97. }
  98. /**
  99. * Ferme la connexion au serveur
  100. * @return Reussite
  101. */
  102. public boolean close(){
  103. try {
  104. input.close();
  105. output.close();
  106. socket.close();
  107. } catch (IOException ex) {
  108. System.err.println("Impossible de de fermer le client : " + ex.getMessage());
  109. return false;
  110. }
  111. return true;
  112. }
  113. /* --- Getter/Setter --- */
  114. public InetAddress getAdr() {
  115. return adr;
  116. }
  117. public void setAdr(InetAddress adr) {
  118. this.adr = adr;
  119. }
  120. public int getPort() {
  121. return port;
  122. }
  123. public void setPort(int port) {
  124. this.port = port;
  125. }
  126. }