Citat:
Ursprungligen postat av
SingedRyze
Jag försöker skicka en enkel string via en socket. Har gjort ett exempel program från
https://www.javatpoint.com/socket-programming
Jag kör Client och Server med cmd och de körs men inget skrivs ut i konsolen. Är det något fel med koden i sig som gör att println (i client filen) inte körs eller har det att göra med att jag kör filerna via cmd?
Client.java
Kod:
public class Client {
public static void main(String[] args){
try{
ServerSocket ss = new ServerSocket(6666);
Socket s = ss.accept();
DataInputStream din = new DataInputStream(s.getInputStream());
String str = din.readUTF();
System.out.println("Message received: " + str);
ss.close();
}catch(Exception e){
System.out.println(e);
}
}
}
Server.java
Kod:
public class Server {
public static void main(String[] args){
int port = 6666;
String ipAdress = "localhost";
try{
Socket s = new Socket(ipAdress, port);
DataOutputStream dout = new DataOutputStream(s.getOutputStream());
dout.writeUTF("Hello Server");
dout.flush();
dout.close();
s.close();
}catch(Exception e){
System.out.println(e);
}
}
}
Kan bara fylla på det som tidigare skrivit, logiken verkar bakvänd.
Din klient kommer behöva skapa en socket för atrt prata med server. Din server kommer behöva använda en serversocket som ligger och lyssnar på inkommande anslutningar.
Läs på om hur du skapar och använder sockets. Enkelt uttryckt behöver du i din klient skapa en socket som får gå mot en endpoint där din serversocket lyssnar, sedan måste du anropa metoden connect i din socket för att ansluta, därefter kan du skicka och ta emot meddelanden över din socket och när du är klar behöver du stänga din socket.