From 0085add47c1eadbbb89fa1e9affc861aeac77c1b Mon Sep 17 00:00:00 2001 From: Jakub Adamski Date: Wed, 20 Nov 2019 10:35:02 +0100 Subject: [PATCH] klient poprawka --- klient/Projekt-Final.jar | Bin 5273 -> 4856 bytes klient/src/main/java/Projekt/App.java | 38 ++++++--------- server/uberProstyServer.c | 66 +++++++++++++++----------- 3 files changed, 53 insertions(+), 51 deletions(-) diff --git a/klient/Projekt-Final.jar b/klient/Projekt-Final.jar index 936cae9467a5324e1d0409dbb5c5633dd27214da..a14431f534a175d24f1b803984b99233d4a007c1 100644 GIT binary patch delta 4310 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 0){ String s = new String(rec); - //System.out.println("Serwer powiedzial: "+s); messages.addElement(s); messagesL.setModel(messages); } @@ -70,20 +67,7 @@ public class App { } }; - try { - receiveThread.start(); - //ustanawiamy polaczenie na wysylanie wiadomosci - InetAddress tAddr = InetAddress.getByName(ipText.getText()); - int tPort = Integer.parseInt(portText.getText()); - tSocket = new Socket(tAddr, tPort); // laczymy - tDos = new DataOutputStream(tSocket.getOutputStream()); // tu wysylamy wiadomosci - tDos.write(convert("T")); //wysylamy T - portText.setText("OK2"); - - } catch (Exception ae){ - ae.printStackTrace(); - portText.setText("CANT CONNECT"); - } + receiveThread.start(); } }); myUserT = new JTextField("Nick"); @@ -97,12 +81,18 @@ public class App { mSendB.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //wysylanie wiadomosci try { + //ustanawiamy polaczenie na wysylanie wiadomosci + InetAddress tAddr = InetAddress.getByName(ipText.getText()); + int tPort = Integer.parseInt(portText.getText()); + tSocket = new Socket(tAddr, tPort); // laczymy + tDos = new DataOutputStream(tSocket.getOutputStream()); // tu wysylamy wiadomosci tDos.write(convert(myUserT.getText() + "> " + messageT.getText())); //wysylamy messageT.setText(""); - - } catch (Exception e1) { - messageT.setText("CANT SEND"); - e1.printStackTrace(); + tSocket.close(); //czy to tez trzeba? + + } catch (Exception ae){ + ae.printStackTrace(); + portText.setText("CANT SEND"); } } }); diff --git a/server/uberProstyServer.c b/server/uberProstyServer.c index 7ed3bb6..0eaff9e 100644 --- a/server/uberProstyServer.c +++ b/server/uberProstyServer.c @@ -10,16 +10,25 @@ int main(void) { char bufor[1024], rBufor[1024], tBufor[1024]; //wiadomosc int gniazdo, gniazdo2, rGniazdo, tGniazdo; - struct sockaddr_in adr, nadawca, rNadawca, tNadawca; + struct sockaddr_in adr, rNadawca, tNadawca, adrS; socklen_t dl = sizeof(struct sockaddr_in); - gniazdo = socket(PF_INET, SOCK_STREAM, 0); + gniazdo2 = socket(PF_INET, SOCK_STREAM, 0); + + //adres do odbierania widomosci od klienta adr.sin_family = AF_INET; adr.sin_port = htons(44444); //port adr.sin_addr.s_addr = INADDR_ANY; - printf("Slucham na %s:%d\n", inet_ntoa(adr.sin_addr), ntohs(adr.sin_port)); + //adres do wysylania widomosci do klienta + adrS.sin_family = AF_INET; + adrS.sin_port = htons(44445); //port + adrS.sin_addr.s_addr = INADDR_ANY; + printf("Odbieram na %s:%d\n", inet_ntoa(adr.sin_addr), ntohs(adr.sin_port)); + printf("Wysylam na %s:%d\n", inet_ntoa(adrS.sin_addr), ntohs(adrS.sin_port)); + + //konfiguracja do odbierania wiadomosci if (bind(gniazdo, (struct sockaddr*) &adr, sizeof(adr)) < 0) { //bind printf("Bind nie powiodl sie.\n"); return 1; @@ -28,38 +37,41 @@ int main(void) { printf("Listen nie powiodl sie.\n"); return 1; } - printf("Czekam na polaczenie ...\n"); - while ((gniazdo2 = accept(gniazdo, (struct sockaddr*) &nadawca, &dl)) > 0) { //odbieranie - memset(bufor, 0, 1024); - recv(gniazdo2, bufor, 1024, 0); - printf("Wiadomosc od %s: %s\n", inet_ntoa(nadawca.sin_addr), bufor); - if (bufor[0] == 'T'){ - tGniazdo = gniazdo2; - tNadawca = nadawca; - if (fork() == 0){ //child wejdzie w while - while (1){ - memset(tBufor, 0, 1024); - recv(tGniazdo, tBufor, 1024, 0); - printf("Wiadomosc od %s: %s\n", inet_ntoa(tNadawca.sin_addr), tBufor); - } - } - } else { - rGniazdo = gniazdo2; - rNadawca = nadawca; - if(fork() == 0){ //child wejdzie w while + + //konfiguracja do wysylania wiadomosci + if (bind(gniazdo2, (struct sockaddr*) &adrS, sizeof(adrS)) < 0) { //bind + printf("Bind nie powiodl sie.\n"); + return 1; + } + if (listen(gniazdo2, 10) < 0) { //listen + printf("Listen nie powiodl sie.\n"); + return 1; + } + printf("Polaczenia skonfigurowane ...\n"); + + if (fork() == 0){ //child wejdzie w to TUTAJ WYSYLAM WIDOMOSCI co 5 sekund + while ((tGniazdo = accept(gniazdo2, (struct sockaddr*) &tNadawca, &dl)) > 0) { int licznik = 1; while(1){ - memset(rBufor, 0, 1024); - rBufor[1] = licznik + '0'; + memset(tBufor, 0, 1024); + tBufor[1] = licznik + '0'; printf("Wysylam licznik\n"); - send(rGniazdo, rBufor, 1024, 0); + send(tGniazdo, tBufor, 1024, 0); licznik += 1; sleep(5); } - } } - close(gniazdo2); + } else { //tutaj odbieram wiadomosci + while ((rGniazdo = accept(gniazdo, (struct sockaddr*) &rNadawca, &dl)) > 0) { //odbieranie + memset(rBufor, 0, 1024); + recv(rGniazdo, rBufor, 1024, 0); + printf("Wiadomosc od %s: %s\n", inet_ntoa(rNadawca.sin_addr), rBufor); + close(rGniazdo); + } } + + //do tego w sumie nigdy nie dojdziemy + close(gniazdo2); close(gniazdo); return 0; } \ No newline at end of file