Advertisement
Guest User

Untitled

a guest
Oct 14th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.63 KB | None | 0 0
  1. -------------------CLIENTE---------------------
  2.  
  3. package stivent;
  4.  
  5. import javax.swing.*;
  6. import javax.swing.border.Border;
  7. import javax.swing.border.EmptyBorder;
  8.  
  9. import stivent.Client.ClientDataOut;
  10. import stivent.Server.ServerDataOut;
  11.  
  12. import java.awt.*;
  13.  
  14. import java.awt.event.*;
  15. import java.io.DataOutputStream;
  16. import java.io.IOException;
  17. import java.io.ObjectInputStream;
  18. import java.io.ObjectOutputStream;
  19. import java.io.Serializable;
  20. import java.lang.reflect.InvocationTargetException;
  21. import java.net.Inet4Address;
  22. import java.net.InetAddress;
  23. import java.net.ServerSocket;
  24. import java.net.Socket;
  25. import java.net.UnknownHostException;
  26. import java.util.Scanner;
  27.  
  28. public class Client extends JFrame implements Runnable{
  29.  
  30. JPanel registerPanel;
  31. JPanel loginPanel;
  32. JPanel chatPanel;
  33. DefaultListModel<String> listModel = new DefaultListModel<>();
  34. JList friendList = new JList(listModel);
  35. transient ServerDataOut serverData;
  36. transient ClientDataOut clientData = new ClientDataOut();
  37.  
  38. public static void main(String[] args) {
  39.  
  40. EventQueue.invokeLater(new Runnable() {
  41.  
  42. @Override
  43. public void run() {
  44.  
  45. new Client();
  46.  
  47. }
  48. });
  49.  
  50. }
  51.  
  52. public Client(){
  53.  
  54. //Frame
  55. setSize(480,509);
  56. setLocationRelativeTo(null);
  57. setResizable(false);
  58. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  59. setTitle("My chat");
  60.  
  61. //Content pane
  62. getContentPane().setLayout(null);
  63.  
  64.  
  65. //Login Panel
  66. loginPanel = new JPanel() {
  67.  
  68. protected void paintComponent(Graphics g) {
  69. super.paintComponent(g);
  70. Graphics2D cabeza= (Graphics2D)g;
  71. cabeza.setStroke(new BasicStroke());
  72. cabeza.setPaint(new Color(20,209,200));
  73. cabeza.fillOval(175, 50, 100, 100);
  74.  
  75. Graphics2D cuerpo= (Graphics2D)g;
  76. cuerpo.setStroke(new BasicStroke());
  77. cuerpo.setPaint(new Color(20,209,200));
  78. cuerpo.fillOval(150, 153, 150, 70);
  79.  
  80. }
  81.  
  82. };
  83.  
  84. loginPanel.setBackground(new Color(171,241,217));
  85. loginPanel.setLayout(null);
  86. loginPanel.setVisible(true);
  87. loginPanel.setBounds(0,0,480,509);
  88.  
  89. //Login Panel Components
  90. JTextField userName = new JTextField();
  91. userName.setFont(new Font("Arial", Font.PLAIN, 17));
  92. userName.setBorder(null);
  93. userName.setBounds(135, 267, 187, 28);
  94. loginPanel.add(userName);
  95.  
  96. JPasswordField passwordField = new JPasswordField();
  97. passwordField.setFont(new Font("Arial", Font.PLAIN, 17));
  98. passwordField.setBorder(null);
  99. passwordField.setBounds(135, 335, 187, 28);
  100. loginPanel.add(passwordField);
  101.  
  102. JButton logIn = new JButton("LogIn");
  103. logIn.setBorder(null);
  104. logIn.setBackground(new Color(25, 214, 208));
  105. logIn.setBounds(179, 389, 89, 28);
  106. logIn.addActionListener(new ActionListener() {
  107.  
  108. @Override
  109. public void actionPerformed(ActionEvent e) {
  110.  
  111. try {
  112.  
  113. clientData.singUpOrLogIn("logIn", userName.getText(), String.valueOf(passwordField.getPassword()));
  114. clientData.ipSentConfirm = true;
  115.  
  116. } catch (IOException e1) {
  117.  
  118. e1.printStackTrace();
  119. }
  120.  
  121. }
  122. });
  123.  
  124. loginPanel.add(logIn);
  125.  
  126. JLabel signIn = new JLabel("Sign in");
  127. signIn.setFont(new Font("Tahoma", Font.BOLD, 13));
  128. signIn.setBounds(200, 428, 122, 42);
  129. loginPanel.add(signIn);
  130.  
  131. signIn.addMouseListener(new MouseAdapter() {
  132.  
  133. @Override
  134. public void mousePressed(MouseEvent e) {
  135.  
  136. loginPanel.setVisible(false);
  137. registerPanel.setVisible(true);
  138.  
  139. }
  140.  
  141. });
  142.  
  143. getContentPane().add(loginPanel);
  144.  
  145. //Register Panel
  146. registerPanel = new JPanel() {
  147.  
  148. protected void paintComponent(Graphics g) {
  149. super.paintComponent(g);
  150. Graphics2D cabeza= (Graphics2D)g;
  151. cabeza.setStroke(new BasicStroke());
  152. cabeza.setPaint(new Color(20,209,200));
  153. cabeza.fillOval(175, 50, 100, 100);
  154.  
  155. Graphics2D cuerpo= (Graphics2D)g;
  156. cuerpo.setStroke(new BasicStroke());
  157. cuerpo.setPaint(new Color(20,209,200));
  158. cuerpo.fillOval(150, 153, 150, 70);
  159.  
  160. }
  161.  
  162. };
  163.  
  164. registerPanel.setLayout(null);
  165. registerPanel.setBackground(new Color(171, 241, 217));
  166. registerPanel.setVisible(false);
  167. registerPanel.setBounds(0,0,480,509);
  168.  
  169. //Register panel components
  170. JTextField registerNameUser = new JTextField();
  171. registerNameUser.setFont(new Font("Arial", Font.PLAIN, 17));
  172. registerNameUser.setBorder(null);
  173. registerNameUser.setBounds(135, 267, 187, 28);
  174. registerPanel.add(registerNameUser);
  175.  
  176. JPasswordField registerPasswordField = new JPasswordField();
  177. registerPasswordField.setFont(new Font("Arial", Font.PLAIN, 17));
  178. registerPasswordField.setBorder(null);
  179. registerPasswordField.setBounds(135, 335, 187, 28);
  180. registerPanel.add(registerPasswordField);
  181.  
  182. JButton registerButton = new JButton("Register");
  183. registerButton.setBorder(null);
  184. registerButton.setBackground(new Color(25, 214, 208));
  185. registerButton.setBounds(179, 389, 89, 28);
  186. registerPanel.add(registerButton);
  187. //Register request
  188. registerButton.addActionListener(new ActionListener() {
  189.  
  190. @Override
  191. public void actionPerformed(ActionEvent e) {
  192.  
  193. try {
  194. clientData.singUpOrLogIn("singUp",registerNameUser.getText(), String.valueOf(registerPasswordField.getPassword()));
  195. } catch (IOException e1) {
  196.  
  197. e1.printStackTrace();
  198. }
  199.  
  200. }
  201.  
  202. });
  203.  
  204. JLabel login = new JLabel("Are you registred already?");
  205. login.setFont(new Font("Tahoma", Font.BOLD, 13));
  206. login.setBounds(135, 428, 187, 42);
  207. registerPanel.add(login);
  208.  
  209. login.addMouseListener(new MouseAdapter() {
  210.  
  211. @Override
  212. public void mousePressed(MouseEvent e) {
  213.  
  214. registerPanel.setVisible(false);
  215. loginPanel.setVisible(true);
  216.  
  217. }
  218.  
  219. });
  220.  
  221. getContentPane().add(registerPanel);
  222.  
  223. //Chat panel
  224. chatPanel = new JPanel(){
  225. protected void paintComponent(Graphics g) {
  226. super.paintComponent(g);
  227. g.drawLine(23, 17, 10, 30);
  228. Graphics2D magnifyingGlassIcon= (Graphics2D)g;
  229. magnifyingGlassIcon.setStroke(new BasicStroke());
  230. magnifyingGlassIcon.setPaint(new Color(255,255,255));
  231. magnifyingGlassIcon.fillOval(20, 5, 15, 15);
  232.  
  233. }
  234.  
  235. };
  236.  
  237. chatPanel.setBackground(new Color(171,241,217));
  238. chatPanel.setLayout(null);
  239. chatPanel.setVisible(false);
  240. chatPanel.setBounds(0,0,480,509);
  241.  
  242. //Chat panel components
  243. JTextField chatField = new JTextField();
  244. chatField.setBounds(10, 445, 444, 24);
  245. chatPanel.add(chatField);
  246.  
  247. JTextField searchField = new JTextField();
  248. searchField.setBounds(44, 6, 180, 24);
  249. chatPanel.add(searchField);
  250.  
  251. friendList.setBounds(281, 71, 173, 363);
  252. chatPanel.add(friendList);
  253.  
  254. TextArea textArea = new TextArea();
  255. textArea.setEditable(false);
  256. textArea.setBounds(10, 37, 265, 397);
  257.  
  258. chatPanel.add(textArea);
  259.  
  260. JLabel friendsLabel = new JLabel("My Friends");
  261. friendsLabel.setBounds(320, 42, 88, 25);
  262. friendsLabel.setFont(new Font("Arial", Font.BOLD, 16));
  263. chatPanel.add(friendsLabel);
  264.  
  265. JButton addFriendButton = new JButton("Add");
  266. addFriendButton.setBorder(BorderFactory.createEmptyBorder());
  267. addFriendButton.setBounds(234, 6, 65, 25);
  268. addFriendButton.setBackground(new Color(20,209,200));
  269. addFriendButton.addActionListener(new ActionListener() {
  270.  
  271. @Override
  272. public void actionPerformed(ActionEvent e) {
  273.  
  274. clientData.searchUser = searchField.getText();
  275.  
  276. try {
  277.  
  278. clientData.sendFriendRequest("friendRequest");
  279.  
  280. } catch (IOException e1) {
  281.  
  282. e1.printStackTrace();
  283. }
  284.  
  285. }
  286. });
  287. chatPanel.add(addFriendButton);
  288.  
  289. JButton eliminateFriendButton = new JButton("Eliminate");
  290. eliminateFriendButton.setBorder(BorderFactory.createEmptyBorder());
  291. eliminateFriendButton.setBounds(309, 6, 65, 25);
  292. eliminateFriendButton.setBackground(new Color(25, 214, 208));
  293. chatPanel.add(eliminateFriendButton);
  294.  
  295. JButton signOffButton = new JButton("Sign off");
  296. signOffButton.setBorder(BorderFactory.createEmptyBorder());
  297. signOffButton.setBounds(384, 6, 70, 25);
  298. signOffButton.setForeground(Color.WHITE);
  299. signOffButton.setBackground(new Color(182, 1, 52));
  300. chatPanel.add(signOffButton);
  301.  
  302. getContentPane().add(chatPanel);
  303.  
  304. setVisible(true);
  305.  
  306. //Second thread
  307. Thread secondThread = new Thread(this);
  308. Thread thredThread = new Thread(this);
  309. secondThread.start();
  310.  
  311. }
  312.  
  313. @Override
  314. public void run() {
  315.  
  316. try {
  317.  
  318. ServerSocket socket = new ServerSocket(4567);
  319.  
  320. while(true) {
  321.  
  322. Socket dataListener = socket.accept();
  323. ObjectInputStream inPut = new ObjectInputStream(dataListener.getInputStream());
  324. serverData = (ServerDataOut) inPut.readObject();
  325. inPut.close();
  326. clientData.filterRequest();
  327.  
  328. }
  329.  
  330. } catch (IOException | ClassNotFoundException e) {
  331.  
  332. e.printStackTrace();
  333.  
  334. }
  335. }
  336.  
  337. private void Login() {
  338.  
  339. loginPanel.setVisible(false);
  340. chatPanel.setVisible(true);
  341.  
  342. try {
  343.  
  344. clientData.getMyFriendsList();
  345.  
  346. } catch (IOException e1) {
  347.  
  348. e1.printStackTrace();
  349.  
  350. }
  351. }
  352.  
  353. private void buildMyFriendsList() {
  354.  
  355. try {
  356.  
  357. Scanner scan = new Scanner(serverData.clientFriendsList);
  358.  
  359. if(listModel.isEmpty()) {
  360.  
  361. while(scan.hasNext())
  362.  
  363. listModel.addElement(scan.next());
  364.  
  365. }
  366.  
  367. else {
  368.  
  369. listModel.removeAllElements();
  370.  
  371. while(scan.hasNext())
  372. listModel.addElement(scan.next());
  373.  
  374. }
  375.  
  376. }
  377.  
  378. catch (Exception e) {
  379.  
  380. e.printStackTrace();
  381. }
  382.  
  383. }
  384.  
  385. public class ClientDataOut implements Serializable{
  386.  
  387. String requestTypeClient;
  388. String name;
  389. String password;
  390. String searchUser;
  391. String friendRequestOf;
  392.  
  393. boolean ipSentConfirm = false;
  394.  
  395. private void filterRequest() throws IOException {
  396.  
  397. switch(serverData.requestTypeServer) {
  398.  
  399. case "friendRequest":
  400.  
  401. friendRequestToMe();
  402.  
  403. break;
  404.  
  405. case "serverLoginPermission":
  406.  
  407. Login();
  408.  
  409. break;
  410.  
  411. case "Error":
  412.  
  413. Error();
  414.  
  415. break;
  416.  
  417. case "MyFriendsList":
  418.  
  419. buildMyFriendsList();
  420.  
  421. break;
  422.  
  423. }
  424. }
  425.  
  426. private void mySocket(ClientDataOut object) throws IOException {
  427.  
  428. Socket socket = new Socket("255.255.255.255", 4444);
  429. ObjectOutputStream outData = new ObjectOutputStream(socket.getOutputStream());
  430. outData.writeObject(object);
  431. outData.close();
  432.  
  433. }
  434.  
  435. private void singUpOrLogIn(String requestType, String name, String password) throws IOException{
  436.  
  437. this.requestTypeClient = requestType;
  438. this.name = name;
  439. this.password = password;
  440. mySocket(clientData);
  441.  
  442. }
  443.  
  444. private void sendFriendRequest(String requestType) throws IOException {
  445.  
  446. this.requestTypeClient = requestType;
  447. mySocket(clientData);
  448.  
  449. }
  450.  
  451. private void getMyFriendsList() throws IOException {
  452.  
  453. clientData.requestTypeClient = "buildTheClientListFriends";
  454. mySocket(clientData);
  455.  
  456. }
  457.  
  458. private void Error() {
  459.  
  460. JFrame f = new JFrame();
  461. f.setAlwaysOnTop(true);
  462.  
  463. switch(serverData.Error) {
  464.  
  465. case "nameOrPasswordIncorret":
  466.  
  467. JOptionPane.showMessageDialog(f,"The Name or password it's incorrect", "Duplicate Name", JOptionPane.ERROR_MESSAGE);
  468. clientData.ipSentConfirm = false;
  469.  
  470. break;
  471.  
  472. case "TheNameAlreadyExists":
  473.  
  474. JOptionPane.showMessageDialog(f,"There is a name like this already", "Duplicate name error", JOptionPane.ERROR_MESSAGE);
  475.  
  476. break;
  477.  
  478. case "UserNotFound":
  479.  
  480. JOptionPane.showMessageDialog(f,"the name does not exist or is misspelled", "User not found error", JOptionPane.ERROR_MESSAGE);
  481.  
  482. break;
  483.  
  484. }
  485. }
  486.  
  487. private void friendRequestToMe() throws IOException {
  488.  
  489. JFrame f = new JFrame();
  490. f.setAlwaysOnTop(true);
  491.  
  492. if(JOptionPane.showConfirmDialog(f, "Do you want to add " + serverData.FriendRequestOf + " as your friend")==0) {
  493.  
  494. clientData.requestTypeClient = "clientFriendList";
  495. clientData.friendRequestOf = serverData.FriendRequestOf;
  496. mySocket(clientData);
  497.  
  498. }
  499. }
  500. }
  501. }
  502.  
  503.  
  504. ----------------------SERVER-----------
  505.  
  506. package stivent;
  507.  
  508. import javax.swing.*;
  509.  
  510. import stivent.Client.ClientDataOut;
  511.  
  512. import java.awt.*;
  513. import java.awt.event.TextEvent;
  514. import java.awt.event.TextListener;
  515. import java.awt.peer.TextAreaPeer;
  516. import java.io.BufferedWriter;
  517. import java.io.DataInputStream;
  518. import java.io.File;
  519. import java.io.FileNotFoundException;
  520. import java.io.FileReader;
  521. import java.io.FileWriter;
  522. import java.io.IOException;
  523. import java.io.ObjectInputStream;
  524. import java.io.ObjectOutputStream;
  525. import java.io.Serializable;
  526. import java.net.ServerSocket;
  527. import java.net.Socket;
  528. import java.text.FieldPosition;
  529. import java.util.Calendar;
  530. import java.util.HashMap;
  531. import java.util.HashSet;
  532. import java.util.Map;
  533. import java.util.Scanner;
  534. import java.util.Set;
  535.  
  536. public class Server extends JFrame implements Runnable {
  537.  
  538. TextArea textArea = new TextArea();
  539. transient ClientDataOut clientData;
  540. transient ServerDataOut serverData = new ServerDataOut();
  541. Set<String> names = new HashSet<>();
  542. Set<String> nameAndPasswordIdentifcator = new HashSet<>();
  543. transient Socket wait;
  544.  
  545. public static void main(String[] args) {
  546.  
  547. EventQueue.invokeLater(new Runnable() {
  548.  
  549. @Override
  550. public void run() {
  551.  
  552. new Server();
  553.  
  554. }
  555. });
  556. }
  557.  
  558. public Server(){
  559.  
  560. setSize(480,509);
  561. setDefaultCloseOperation(EXIT_ON_CLOSE);
  562. setResizable(false);
  563. setTitle("Server");
  564. setVisible(true);
  565.  
  566. textArea = new TextArea();
  567. textArea.setEditable(false);
  568. getContentPane().add(textArea);
  569.  
  570. //Thread for my SocketListener
  571. Thread secondThread = new Thread(this);
  572. secondThread.start();
  573.  
  574. }
  575.  
  576. @Override
  577. public void run() {
  578.  
  579. try {
  580.  
  581. ServerSocket socket = new ServerSocket(4444);
  582.  
  583. while(true) {
  584.  
  585. wait = socket.accept();
  586. ObjectInputStream input = new ObjectInputStream(wait.getInputStream());
  587. clientData = (ClientDataOut) input.readObject();
  588. input.close();
  589.  
  590. filterRequest();
  591.  
  592. }
  593.  
  594. }
  595.  
  596. catch (IOException | ClassNotFoundException e) {
  597.  
  598. System.out.println("Something is wrong");
  599.  
  600. }
  601. }
  602.  
  603. public void mySocket(ServerDataOut serverData, String ip) throws IOException {
  604.  
  605. Socket socket = new Socket(ip, 4567);
  606. ObjectOutputStream outData = new ObjectOutputStream(socket.getOutputStream());
  607. outData.writeObject(serverData);
  608. outData.close();
  609.  
  610. }
  611.  
  612. private void filterRequest() throws IOException {
  613.  
  614. switch(clientData.requestTypeClient) {
  615.  
  616. case "singUp":
  617.  
  618. singUpDuplicateNameTester();
  619.  
  620. break;
  621.  
  622. case "logIn":
  623.  
  624. logIn();
  625.  
  626. break;
  627.  
  628. case "friendRequest":
  629.  
  630. sendFriendRequest();
  631.  
  632. break;
  633.  
  634. case "clientFriendList":
  635.  
  636. addFriendsToTheList();
  637.  
  638. break;
  639.  
  640. case "buildTheClientListFriends":
  641.  
  642. buildFriendsList();
  643.  
  644. break;
  645.  
  646. }
  647.  
  648. }
  649.  
  650. private void singUpDuplicateNameTester() throws IOException {
  651.  
  652. File file = new File("C:\\Users\\Stive\\Desktop\\Server\\RegisterName.txt");
  653.  
  654. Scanner scan = new Scanner(file);
  655.  
  656. while(scan.hasNext()) {
  657.  
  658. String myWord = scan.next();
  659. names.add(myWord);
  660.  
  661. }
  662.  
  663. if(names.contains(clientData.name)==false) {
  664.  
  665. singUp();
  666.  
  667. }
  668.  
  669. else {
  670.  
  671. serverData.requestTypeServer = "Error";
  672. serverData.Error = "TheNameAlreadyExists";
  673. mySocket(serverData, wait.getInetAddress().getHostAddress());
  674.  
  675. }
  676. }
  677.  
  678. private void singUp() throws IOException {
  679.  
  680. FileWriter names = new FileWriter("C:\\Users\\Stive\\Desktop\\Server\\RegisterName.txt", true);
  681. BufferedWriter buffer2 = new BufferedWriter(names);
  682. buffer2.write(clientData.name + "\r\n");
  683. buffer2.close();
  684.  
  685. FileWriter writerIdentificator = new FileWriter("C:\\Users\\Stive\\Desktop\\Server\\RegisterLogIn.txt", true);
  686. BufferedWriter buffer = new BufferedWriter(writerIdentificator);
  687. buffer.write(clientData.name + clientData.password + "\r\n");
  688. buffer.close();
  689. textArea.append("[" + Calendar.getInstance().get(Calendar.HOUR_OF_DAY) + ":" + Calendar.getInstance().get(Calendar.MINUTE) + "]-" + clientData.name + " just signed up"+ "\r\n");
  690.  
  691. }
  692.  
  693. private void logIn() throws IOException {
  694.  
  695. File fileNameAndPasswordIdentifcator = new File("C:\\Users\\Stive\\Desktop\\Server\\RegisterLogIn.txt");
  696.  
  697. Scanner scan = new Scanner(fileNameAndPasswordIdentifcator);
  698.  
  699. while(scan.hasNext()) {
  700.  
  701. String myWord = scan.next();
  702. nameAndPasswordIdentifcator.add(myWord);
  703.  
  704. }
  705.  
  706. if(nameAndPasswordIdentifcator.contains(clientData.name + clientData.password)) {
  707.  
  708. textArea.append("[" + Calendar.getInstance().get(Calendar.HOUR_OF_DAY) + ":" + Calendar.getInstance().get(Calendar.MINUTE) + "]-" + clientData.name + " just logged in" + "\r\n");
  709. duplicateIpTester();
  710. serverData.requestTypeServer = "serverLoginPermission";
  711. mySocket(serverData, wait.getInetAddress().getHostAddress());
  712.  
  713. }
  714.  
  715. else{
  716.  
  717. serverData.requestTypeServer = "Error";
  718. serverData.Error = "nameOrPasswordIncorret";
  719. mySocket(serverData, wait.getInetAddress().getHostAddress());
  720.  
  721. }
  722. }
  723.  
  724. private void saveClientIp() throws IOException {
  725.  
  726. FileWriter saveIp = new FileWriter("C:\\Users\\Stive\\Desktop\\Server\\RegisterIp.txt",true);
  727. saveIp.write(clientData.name + " " + wait.getInetAddress().getHostAddress() + "\r\n");
  728. saveIp.close();
  729. textArea.append("[" + Calendar.getInstance().get(Calendar.HOUR_OF_DAY) + ":" + Calendar.getInstance().get(Calendar.MINUTE) + "]-" + "The ip:" + "'" + wait.getInetAddress().getHostAddress() + "'" + " of " + clientData.name + " has been saved" + "\r\n");
  730.  
  731. }
  732.  
  733. private void duplicateIpTester() throws IOException {
  734.  
  735. if(clientData.ipSentConfirm==false) {
  736.  
  737. File checkIp = new File("C:\\Users\\Stive\\Desktop\\Server\\RegisterIp.txt");
  738. Scanner scan = new Scanner(checkIp);
  739. Set<String> duplicateIpTester = new HashSet<>();
  740.  
  741. while(scan.hasNext())
  742. duplicateIpTester.add(scan.nextLine());
  743.  
  744. if(!duplicateIpTester.contains(clientData.name + " " + wait.getInetAddress().getHostAddress()))
  745. saveClientIp();
  746.  
  747. }
  748. }
  749.  
  750. private void sendFriendRequest() throws IOException {
  751.  
  752. File registerIp = new File("C:\\Users\\Stive\\Desktop\\Server\\RegisterIp.txt");
  753.  
  754. Scanner scan = new Scanner(registerIp);
  755. Map<String, String> searchUser = new HashMap<>();
  756. while(scan.hasNext())
  757. searchUser.put(scan.next(), scan.next());
  758.  
  759. if(searchUser.containsKey(clientData.searchUser)) {
  760.  
  761. serverData.FriendRequestOf = clientData.searchUser;
  762. serverData.requestTypeServer = "friendRequest";
  763. mySocket(serverData, searchUser.get(clientData.searchUser));
  764.  
  765. }
  766.  
  767. else {
  768.  
  769. serverData.requestTypeServer = "Error";
  770. serverData.Error = "UserNotFound";
  771. mySocket(serverData, searchUser.get(clientData.name));
  772.  
  773. }
  774. }
  775.  
  776. void addFriendsToTheList() throws IOException {
  777.  
  778. FileWriter writer = new FileWriter("C:\\Users\\Stive\\Desktop\\Server\\FriendLists\\" + clientData.name + "FriendsList.txt",true);
  779. writer.write(clientData.friendRequestOf + "\r\n");
  780. writer.close();
  781. buildFriendsList();
  782.  
  783. }
  784.  
  785. void buildFriendsList() throws IOException {
  786. serverData.clientFriendsList = "";
  787. File file = new File("C:\\Users\\Stive\\Desktop\\Server\\FriendLists\\" + clientData.name + "FriendsList.txt");
  788. if(file.exists()) {
  789.  
  790. }else {
  791.  
  792. file.createNewFile();
  793.  
  794. }
  795.  
  796. Scanner scan = new Scanner(file);
  797.  
  798. //Works just if the client have friends
  799. if(scan.hasNext()) {
  800.  
  801. while(scan.hasNext())
  802. serverData.clientFriendsList +=" " + scan.next();
  803.  
  804. serverData.requestTypeServer = "MyFriendsList";
  805.  
  806. mySocket(serverData, wait.getInetAddress().getHostAddress());
  807.  
  808. serverData.clientFriendsList = "";
  809.  
  810.  
  811. }
  812. }
  813.  
  814. public class ServerDataOut implements Serializable{
  815.  
  816. String FriendRequestOf;
  817. String requestTypeServer;
  818. String Error;
  819. String clientFriendsList;
  820.  
  821. }
  822. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement