WASD Skrivet 16 April 2010 Rapport Dela Skrivet 16 April 2010 (redigerat) Jag hade tänkt att göra ett program som kommunicerar med ett annat program över internet. Var svårt att hitta en bra guide men jag bestämde mig till slut för denna: http://java.sun.com/developer/onlineTraini...va2/socket.html Den nämner portar, client och server, men, den nämner inga IP-adresser eller liknande? Så det är uppenbarligen inte rätt guide för mig. Så min fråga är hur man gör ett program som kommunicerar med ett annat över internet. Om någon har en guide på det skulle jag bli glad. Ett sånt program som guiden jag länkade visar är ungefär vad jag är ute efter att göra. Redigerat 16 April 2010 av WASD Citera Länk till kommentar Dela på andra sajter More sharing options...
Katt Skrivet 16 April 2010 Rapport Dela Skrivet 16 April 2010 Enligt http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html kan man använda sockets med ip adresser också. Prova och gör som i guiden, men istället för kq6py skriv typ "127.0.0.1" eller något. Jag provar i morgon och slänger i hop en guide om jag lyckas. Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 17 April 2010 Författare Rapport Dela Skrivet 17 April 2010 Det låter rimligt, dåligt beskrivet i den guiden helt enkelt. Men jag klarar mig säkert bra med den jag länkade, ska prova nästa vecka tror jag. Skriver här om det uppstår fel. Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 20 April 2010 Författare Rapport Dela Skrivet 20 April 2010 (redigerat) Fått det att funka över lokalt nätverket nu :) Skrev bara in lokala IPn som TheCat sa och valde en port jag visste var öppen. Pingen är väldigt nära 0 :) Funkar antagligen lika bra över internet, hostat teamspeak server på den förut utan problem (9987). Ska göra ett program som räknar ut ping tror jag. edit: Var inte så svårt, 0ms säger den när jag skickar ett "asd" till servern. Nu fick jag däremot problem. Jag bad programmet skicka till min riktiga IP (inte lokal), men då får den ingen signal. Jag provade att skicka från en client i samma nätverk till min internet-IP, men datorn med servern fick inget medelande och clienten bekräftar inte att den fått något svar. Jag skickade även clienten till en kompis och det blir samma fel för honom. Jag har hostat teamspeak server på porten (9987) förut utan problem så jag misstänker att det är något med koden som inte stämmer. Redigerat 20 April 2010 av WASD Citera Länk till kommentar Dela på andra sajter More sharing options...
TheJuice Skrivet 21 April 2010 Rapport Dela Skrivet 21 April 2010 Fått det att funka över lokalt nätverket nu :) Skrev bara in lokala IPn som TheCat sa och valde en port jag visste var öppen. Pingen är väldigt nära 0 :) Funkar antagligen lika bra över internet, hostat teamspeak server på den förut utan problem (9987). Ska göra ett program som räknar ut ping tror jag. edit: Var inte så svårt, 0ms säger den när jag skickar ett "asd" till servern. Nu fick jag däremot problem. Jag bad programmet skicka till min riktiga IP (inte lokal), men då får den ingen signal. Jag provade att skicka från en client i samma nätverk till min internet-IP, men datorn med servern fick inget medelande och clienten bekräftar inte att den fått något svar. Jag skickade även clienten till en kompis och det blir samma fel för honom. Jag har hostat teamspeak server på porten (9987) förut utan problem så jag misstänker att det är något med koden som inte stämmer. När du öppnar sockets till lokala portar brukar brandbäggen ha lite snällare regler för blockering än när det är en anslutning från ett annat nätverk. Förresten, ping = nätverksfördröjning. Det är ganska logiskt att den är noll om du pingar dig själv =) Prova att avaktivera brandväggen och se om den vill ansluta till dig. Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 21 April 2010 Författare Rapport Dela Skrivet 21 April 2010 Borde det verkligen vara så eftersom jag hostat teamspeak server på samma port tidigare? Får väl stänga av windows-brandväggen och prova när jag får tid. Citera Länk till kommentar Dela på andra sajter More sharing options...
TheJuice Skrivet 21 April 2010 Rapport Dela Skrivet 21 April 2010 Borde det verkligen vara så eftersom jag hostat teamspeak server på samma port tidigare? Får väl stänga av windows-brandväggen och prova när jag får tid. TeamSpeak's installation lade kanske in ett undantag i din brandvägg, och tog bort den när du avinstallerade servern? (Förutsatt att du gjorde det, så klart). Kan dock inte utesluta att det är fel i koden om jag inte kan se den =) Sedan kan jag rekommendera att du använder Java's NIO-packet (non-blocking I/O). Apache Mina är annars ett trevligt, lätthanterligt framework för client/server-sockets. Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 25 April 2010 Författare Rapport Dela Skrivet 25 April 2010 (redigerat) Jag har hittat var felet ligger. try{ socket = new Socket("192.168.1.66", 9987); //här chrashar den out = new PrintWriter(socket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); } catch (Exception e) { System.out.println(e); System.exit(1); } När jag skriver en lokal IP chrashar den inte, men när jag skriver min Internet IP gör den det. Ännu en konstig sak är att den inte går in i catch och skriver ut vad det är för fel... Programmet kör på som vanligt och när man ska använda socket så får man NullPointerException den socketen fortfarande är null. Och om jag lägger något efter catch körs inte det heller... Jag provade med avstängd windows brandvägg. Redigerat 25 April 2010 av WASD Citera Länk till kommentar Dela på andra sajter More sharing options...
TheJuice Skrivet 25 April 2010 Rapport Dela Skrivet 25 April 2010 Jag har hittat var felet ligger. try{ socket = new Socket("192.168.1.66", 9987); //här chrashar den out = new PrintWriter(socket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); } catch (Exception e) { System.out.println(e); System.exit(1); } När jag skriver en lokal IP chrashar den inte, men när jag skriver min Internet IP gör den det. Ännu en konstig sak är att den inte går in i catch och skriver ut vad det är för fel... Programmet kör på som vanligt och när man ska använda socket så får man NullPointerException den socketen fortfarande är null. Och om jag lägger något efter catch körs inte det heller... Jag provade med avstängd windows brandvägg. Sockets är elaka och otympliga :P Kan du pinga den IP'n med CMD? Tycker du borde prova med Apache Mina, skicka PM om du behöver hjälp med att sätta upp det. Citera Länk till kommentar Dela på andra sajter More sharing options...
Gäst nomercy421 Skrivet 27 Maj 2010 Rapport Dela Skrivet 27 Maj 2010 (redigerat) Jag har hittat var felet ligger. try{ socket = new Socket("192.168.1.66", 9987); //här chrashar den out = new PrintWriter(socket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); } catch (Exception e) { System.out.println(e); System.exit(1); } När jag skriver en lokal IP chrashar den inte, men när jag skriver min Internet IP gör den det. Ännu en konstig sak är att den inte går in i catch och skriver ut vad det är för fel... Programmet kör på som vanligt och när man ska använda socket så får man NullPointerException den socketen fortfarande är null. Och om jag lägger något efter catch körs inte det heller... Jag provade med avstängd windows brandvägg. Sockets är elaka och otympliga :P Kan du pinga den IP'n med CMD? Tycker du borde prova med Apache Mina, skicka PM om du behöver hjälp med att sätta upp det. Precis, Testa apache mina Redigerat 27 Maj 2010 av nomercy421 Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 27 Maj 2010 Författare Rapport Dela Skrivet 27 Maj 2010 Jag har grejjat med Apache Mina ett tag nu och det funkar bra :) Citera Länk till kommentar Dela på andra sajter More sharing options...
Gäst nomercy421 Skrivet 27 Maj 2010 Rapport Dela Skrivet 27 Maj 2010 Jag har grejjat med Apache Mina ett tag nu och det funkar bra :) Bra :rolleyes: Citera Länk till kommentar Dela på andra sajter More sharing options...
Rekommendera inlägg
Gå med i konversationen
Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.