_ 4.2.1 Använda stream sockets Vi ska nu titta på den första huvudtypen av lågnivåkopplingar med sockets kallade stream sockets. De använder säkra men något långsamma kontinuerlig-uppkopplings-typ TCP vid transporten. Vi ska även titta på klient-server paradigmen (men det är inget måste för denna typ av sockets) och gör det på klientsidan. __ Uppgift Gör en app som implementerar en chattklient som kan sända och ta emot textmeddelanden. Chattklienten ska koppla upp sig till en chattserver via en stream socket. När en chattklient sänder ett textmeddelande till chattservern så sänder chattservern detta textmeddelande till alla anslutna chattklienter. Chattklienten ska alltså både kunna: - Sända textmeddelanden från användaren till chattservern - Ta emot textmeddelanden från chattservern och visa dessa textmeddelanden för användaren Frivillig utökning är att även ta med så att chattklienten klarar av om kopplingen bryts till chattservern (exempelvis om chattservern avslutas) genom att exempelvis meddela användaren och fråga om återanslutning skall försökas. __ Exempel Inget exempel ges. __ Tips För att testa klienten måste man koppla den till en chattserver. Man kan antingen: - Hämta en chattserver och köra den på den egna datorn: -- Hämta filen §[Server.jar, 05_ass/ip1/2/2.1.2/Server.jar]§ -- Starta programmet med §java -jar Server.jar§ som startar chattservern på port §2000§ men man kan även ange ett annat portnummer som ett tredje argument, exempelvis §java -jar Server.jar 2001§ - Använda en chattserver på en annan dator: -- Host: §atlas.dsv.su.se§ -- Port: §9494§ Man kan testa att en chattserver fungerar genom att telnet:a eller ssh:a till den, exempelvis: - §telnet 127.0.0.1 2000§ - §ssh atlas.dsv.su.se 9494§ Chattservern implementerar ett minimalt protkoll som man kan leka med. Om en chattklient skickar §wwhhoo§ så returnerar chattservern alla uppkopplade chattklienters IP-adresser (den inleder svaret med §WWHHOO:§ för varje chattklient). Finns det ingen att chatta med? Testa en pratstund med Pierre:s syster Amy: - Host: §atlas.dsv.su.se§ - Port: §4456§ Det är en robot som pratar Engelska :-). Se även tipsen för uppgiften [2.1.1 Stream sockets på klientsidan, 05_ass/ip1/2.1.1.txt] på kursen [Internetprogrammering – Stationära enheter, 01_intro/ip1.txt]. __ Hjälp ~ 05_ass/help/01.txt > [Klicka här för hjälp, helper.dsv@gmail.com, Prog mobil: 4.2.1 Använda stream sockets: http://people.dsv.su.se/~pierre/i/i.cgi?href=05_ass/ip4/4.2.1.txt] ½===system_tutoring_message===½ < ~ 05_ass/help/02.txt