Advertisement
TrodelHD

Untitled

Mar 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.67 KB | None | 0 0
  1. package Spiel;
  2.  
  3. import java.io.EOFException;
  4. import java.io.IOException;
  5. import java.io.ObjectInputStream;
  6. import java.io.ObjectOutputStream;
  7. import java.net.InetAddress;
  8. import java.net.ServerSocket;
  9. import java.net.Socket;
  10. import java.util.ArrayList;
  11. import java.util.Scanner;
  12.  
  13. import javax.swing.JFrame;
  14. @SuppressWarnings("static-access")
  15. public class Connection {
  16.  
  17. public Main m;
  18. public DrawArea DA;
  19. public static MyPanelRater DAR;
  20. public static MyPanel MyP;
  21.  
  22. private Connection con;
  23. private static Console console = new Console();
  24. private static boolean aktive;
  25.  
  26.  
  27. /*
  28. * Client
  29. */
  30. public boolean clientConnection(String ip,int port) {
  31. aktive = true;
  32. try {
  33. ConnectToServer(ip, port);
  34. setupStreams();
  35. whileChatting();
  36. serversendMessage("connected");
  37. } catch (Exception e) {
  38. return false;
  39. }
  40.  
  41. return true;
  42. }
  43.  
  44. private static Thread thread;
  45. private static Thread thread1;
  46. private static Thread thread2;
  47. private static Socket connenction;
  48. private static ObjectOutputStream output;
  49. private static ObjectInputStream input;
  50. private static Object message;
  51.  
  52.  
  53. private void ConnectToServer(String serverip,int Port) throws IOException {
  54. console.addTextConsole("Versuche verbindung zu "+serverip+":"+""+" verbinden!");
  55. connenction = new Socket(InetAddress.getByName(serverip), Port);
  56. console.addTextConsole("Verbunden zu: "+connenction.getInetAddress().getHostName());
  57. }
  58. private void setupStreams() throws IOException{
  59. console.addTextConsole("Baue Verbindungsbrücken auf");
  60. output = new ObjectOutputStream(connenction.getOutputStream());
  61. output.flush();
  62. input = new ObjectInputStream(connenction.getInputStream());
  63. }
  64. private void whileChatting() throws IOException{
  65. console.addTextConsole("Verbunden");
  66. try {thread.interrupt();} catch (Exception e) {}
  67. thread=null;
  68. thread = new Thread(){
  69. @SuppressWarnings("unchecked")
  70. public void run(){
  71. do{
  72. try {
  73. if(aktive==false){
  74. this.interrupt();
  75. }
  76.  
  77.  
  78. message = input.readObject();
  79.  
  80.  
  81. reciveListener(message);
  82. try {
  83. String s = (String) message;
  84. Scanner scanner = new Scanner(s);
  85. String next = scanner.next();
  86. if(s.equals("killconnection")){
  87. killConnection();
  88. this.interrupt();
  89. }else if(s.equals("connected")){
  90.  
  91. }else if(s.equals("clear")){
  92. DAR.clear();
  93. }else if(s.equals("endround")){
  94. killConnection();
  95. Main m2 = new Main();
  96. try {DAR.frame.dispose();} catch (Exception e) {}
  97. try {MyP.frame.dispose();} catch (Exception e) {}
  98. }else if(s.equals("rollenswaper")){
  99.  
  100.  
  101. MyP.rollenswaper();
  102.  
  103.  
  104. }else if(next.equals("ratewort")){
  105. if(scanner.hasNext()){
  106. MyP.addToLog(scanner.next());
  107. }
  108. }else if(next.equals("start")){
  109. String st2 = scanner.next();
  110. if(st2.equals("rate")){
  111. String st3 = scanner.next();
  112. MyPanelRater rater = new MyPanelRater();
  113. rater.setword(st3);
  114. }
  115. }else{
  116. Scanner sc = new Scanner(s);
  117.  
  118. while(sc.hasNextLine()){
  119. String str = sc.nextLine();
  120. Scanner sca = new Scanner(str);
  121. ArrayList<Integer> ar2 = new ArrayList<>();
  122. while(sca.hasNext()){
  123. ar2.add(Integer.parseInt(sca.next()));
  124. }
  125. sca.close();
  126. all.add(ar2);
  127. //try {DAR.drawLine(ar2.get(0), ar2.get(1), ar2.get(2), ar2.get(3), ar2.get(4), ar2.get(5), ar2.get(6), ar2.get(7));} catch (Exception e2) {e2.printStackTrace();}
  128.  
  129. }
  130.  
  131. Thread t = new Thread(){
  132. public void run(){
  133. ArrayList<ArrayList<Integer>> alle= all;
  134. all=new ArrayList<>();
  135. for(int i = 0;i<alle.size();i++){
  136. ArrayList<Integer> ar2 = alle.get(i);
  137.  
  138. try {DAR.drawLine(ar2.get(0), ar2.get(1), ar2.get(2), ar2.get(3), ar2.get(4), ar2.get(5), ar2.get(6), ar2.get(7));} catch (Exception e2) {/*e2.printStackTrace();*/}
  139. try {sleep(100/alle.size());} catch (Exception e) {}
  140. }
  141.  
  142. }
  143. };
  144. t.start();
  145.  
  146. sc.close();
  147. }
  148. scanner.close();
  149. } catch (Exception e) {
  150. }
  151. } catch (Exception e) {}
  152. }while(true);
  153. }
  154. };
  155. thread.start();
  156. }
  157.  
  158.  
  159. public boolean Hostcon(String Ip, int Port) {
  160. try {
  161. aktive = true;
  162. serverstartRunning(Port);
  163. } catch (IOException e) {
  164. // TODO Auto-generated catch block
  165. e.printStackTrace();
  166. }
  167. //on sucsess
  168. return true;
  169. }
  170. /*
  171. * Server
  172. */
  173. private ServerSocket server;
  174. private static ObjectOutputStream serveroutput;
  175. private static ObjectInputStream serverinput;
  176. private static Socket serverconnection;
  177. private boolean connected;
  178.  
  179. private boolean serverstartRunning(int port) throws IOException{
  180. connected=false;
  181. try {thread1.interrupt();} catch (Exception e) {}
  182. thread1=null;
  183. thread1 = new Thread(){
  184. public void run(){
  185. try {
  186. try {
  187. server = new ServerSocket(port,100);
  188. } catch (IOException e1) {}
  189. while(connected==false){
  190. try {
  191. if(aktive==false){
  192. this.interrupt();
  193. }
  194. serverwaitForConnection();
  195. serversetupStreams();
  196. console.addTextConsole("Verbindung hergestellt");
  197. serverwhileChatting();
  198. serversendMessage("connected");
  199. this.interrupt();
  200. } catch (Exception e) {}
  201. }
  202. } catch (Exception e) {
  203.  
  204. console.addTextConsole("Der Server hat verbindung getrennt");
  205. this.interrupt();
  206. }finally{
  207. this.interrupt();
  208. }
  209. }
  210. };
  211. thread1.start();
  212. console.addTextConsole("Server gestartet!");
  213. return true;
  214.  
  215.  
  216. }
  217.  
  218. private void serverwaitForConnection() throws IOException{
  219.  
  220. serverconnection = server.accept();
  221. connected = true;
  222.  
  223. }
  224. private void serversetupStreams() throws IOException{
  225. console.addTextConsole("Baue Verbindungsbrücken auf!");
  226. serveroutput = new ObjectOutputStream(serverconnection.getOutputStream());
  227. serveroutput.flush();
  228. serverinput = new ObjectInputStream(serverconnection.getInputStream());
  229.  
  230. }
  231. private static ArrayList<ArrayList<Integer>> all = new ArrayList<ArrayList<Integer>>();
  232. private void serverwhileChatting() throws IOException{
  233.  
  234. try {thread2.interrupt();} catch (Exception e) {}
  235. thread2=null;
  236. thread2 = new Thread(){
  237. @SuppressWarnings("unchecked")
  238. public void run(){
  239. do{
  240. try {
  241. if(aktive==false){
  242. this.interrupt();
  243. }
  244.  
  245.  
  246. message = serverinput.readObject();
  247.  
  248.  
  249. reciveListener(message);
  250. try {
  251. String s = (String) message;
  252. Scanner scanner = new Scanner(s);
  253. String next = scanner.next();
  254. if(s.equals("killconnection")){
  255. killConnection();
  256. this.interrupt();
  257. }else if(s.equals("clear")){
  258. DAR.clear();
  259. }else if(s.equals("connected")){
  260. conBestätigung();
  261. }else if(s.equals("rollenswaper")){
  262. if(m.roundnuber>0){
  263. m.roundnuber--;
  264. console.addTextConsole(""+m.roundnuber);
  265. MyP.rollenswaper();
  266. }else{
  267. console.addTextConsole("Kill");
  268. serversendMessage("endround");
  269. killConnection();
  270. Main m2 = new Main();
  271. try {DAR.frame.dispose();} catch (Exception e) {}
  272. try {MyP.frame.dispose();} catch (Exception e) {}
  273. }
  274. }else if(next.equals("ratewort")){
  275. if(scanner.hasNext()){
  276. MyP.addToLog(scanner.next());
  277. }
  278. }else if(next.equals("start")){
  279. String st2 = scanner.next();
  280. if(st2.equals("rate")){
  281. String st3 = scanner.next();
  282. MyPanelRater rater = new MyPanelRater();
  283. rater.setword(st3);
  284. }else if(st2.equals("male")){
  285. String st3 = scanner.next();
  286. }
  287. }else{
  288. Scanner sc = new Scanner(s);
  289.  
  290. while(sc.hasNextLine()){
  291. String str = sc.nextLine();
  292. Scanner sca = new Scanner(str);
  293. ArrayList<Integer> ar2 = new ArrayList<>();
  294. while(sca.hasNext()){
  295. ar2.add(Integer.parseInt(sca.next()));
  296. }
  297. sca.close();
  298. all.add(ar2);
  299. //try {DAR.drawLine(ar2.get(0), ar2.get(1), ar2.get(2), ar2.get(3), ar2.get(4), ar2.get(5), ar2.get(6), ar2.get(7));} catch (Exception e2) {e2.printStackTrace();}
  300.  
  301. }
  302. Thread t = new Thread(){
  303. public void run(){
  304. ArrayList<ArrayList<Integer>> alle= all;
  305. all=new ArrayList<>();
  306. for(int i = 0;i<alle.size();i++){
  307. ArrayList<Integer> ar2 = alle.get(i);
  308.  
  309. try {DAR.drawLine(ar2.get(0), ar2.get(1), ar2.get(2), ar2.get(3), ar2.get(4), ar2.get(5), ar2.get(6), ar2.get(7));} catch (Exception e2) {/*e2.printStackTrace();*/}
  310. try {sleep(100/alle.size());} catch (Exception e) {}
  311. }
  312.  
  313. }
  314. };
  315. t.start();
  316. //all.clear();
  317.  
  318.  
  319. sc.close();
  320. }
  321. } catch (Exception e) {
  322. }
  323. } catch (Exception e) {}
  324. }while(true);
  325. }
  326. };
  327. thread2.start();
  328.  
  329. }
  330. private static ArrayList<ArrayList<Integer>> buffer;
  331. private void conBestätigung(){
  332. WaitforConnection wfc = new WaitforConnection();
  333. wfc.connbestaetigung();
  334.  
  335.  
  336. }
  337. public static void serversendMessage(Object messagem){
  338. if(messagem==null){
  339. return;
  340. }
  341. if(serveroutput==null&&output==null){
  342. console.addTextConsole("Keine verbindung");
  343. }
  344. try {
  345. if(serveroutput!=null){
  346. try {} catch (Exception e) {}
  347. serveroutput.writeObject(messagem);
  348. serveroutput.flush();
  349. }
  350. } catch (Exception e) {
  351. e.printStackTrace();
  352. console.addTextConsole("Verbindungs Error!");
  353. }
  354. try {
  355. if(output!=null){
  356. try {} catch (Exception e) {}
  357. if(output!=null){
  358. output.writeObject(messagem);
  359. output.flush();
  360. }
  361. }
  362. } catch (Exception e) {
  363. e.printStackTrace();
  364. console.addTextConsole("Verbindungs Error!");
  365. }
  366. }
  367.  
  368.  
  369. public Connection getConnection() {
  370.  
  371. return con;
  372.  
  373. }
  374.  
  375. private void reciveListener(Object message){
  376. //console.addTextConsole("Ein Datensatz wurde empfangen: "+message);
  377. }
  378. public boolean killConnection(){
  379. String kill = "killconnection";
  380. message = (Object) kill;
  381. try {serversendMessage(message);} catch (Exception e) {}
  382. aktive = false;
  383. console.addTextConsole("Alte Verbindung Geschlossen");
  384. try {thread.interrupt();} catch (Exception e) {}
  385. try {thread1.interrupt();} catch (Exception e) {}
  386. try {thread2.interrupt();} catch (Exception e) {}
  387. try {thread=null;} catch (Exception e) {}
  388. try {thread1=null;} catch (Exception e) {}
  389. try {thread2=null;} catch (Exception e) {}
  390. try {server.close();server = null;} catch (Exception e) {}
  391. try {serverconnection.close();serverconnection = null;} catch (Exception e) {}
  392. try {serverinput.close();serverinput=null;} catch (Exception e) {}
  393. try {serveroutput.close();serveroutput=null;} catch (Exception e) {}
  394. try {output.close();output=null;} catch (Exception e) {}
  395. try {input.close();input = null;} catch (Exception e) {}
  396. try {connenction.close();connenction=null;} catch (Exception e) {}
  397. try {message=null;} catch (Exception e) {}
  398.  
  399. return true;
  400. }
  401. public static ArrayList<ArrayList<Integer>> All;
  402.  
  403.  
  404.  
  405.  
  406. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement