Avatar billede lasse_hyldal Nybegynder
06. marts 2003 - 13:32 Der er 7 kommentarer og
1 løsning

java kommuniaktion til linux via socket

Vi er ved at lave et client/server program.
Serveren kører på Linux (proogrammeret i C) og kummunikere via sockets.
Vil vil så have klienten til at kører i windowsXP(programmeret i JAVA) hvor de så skal kunne kommunikere med hinanden vi a sockets.

Er der nogle der kan komme med lidt seudokode til hvordan dette problem kan løses??
Avatar billede soreno Praktikant
06. marts 2003 - 13:40 #1
Opret en forbindelse til serveren og udveksel kommandoer, f.eks. noget ala:

Socket socket = new Socket("foo.bar", 12345);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream out = new PrintStream(socket.getOutputStream());

System.out.println(in.readLine());
out.println("USER username");
System.out.println(in.readLine());
out.println("PASS password");
System.out.println(in.readLine());
out.println("COMMAND..");
Avatar billede lasse_hyldal Nybegynder
06. marts 2003 - 13:45 #2
Vores problem er at få forbindelse fra en klient i Java i Windows til en server i C i Linux?
Avatar billede viht Nybegynder
06. marts 2003 - 13:46 #3
Du kan sagtens kommunikere med C fra Java. Du skal bare sørge for at sende en datatype som C siden forstår, f.eks. byte arrays.

  int packetSize = 5000;
  char buffer[packetSize];
 
  while( recv( remoteSocket, buffer, packetSize, 0 ) != 0 ) {
        // gør noget med buffer
  }

Java:
byte[] send = new String("Hej med dig C").getBytes();
Socket socket = new Socket(host,port);
OutputStream out = socket.getOuputStream();
out.write(send);
...
Avatar billede soreno Praktikant
06. marts 2003 - 13:46 #4
Det sker i denne linie (host, port):
Socket socket = new Socket("ipadresse eller hostnavn", 12345);
Avatar billede soreno Praktikant
06. marts 2003 - 13:51 #5
Avatar billede lasse_hyldal Nybegynder
06. marts 2003 - 14:04 #6
Vi har nu problemer med at finde det IP-nummer i Linux vi skal angive som host i vores klient. Hvordan finder man IP-nummeret i Linux?
Avatar billede soreno Praktikant
06. marts 2003 - 14:06 #7
Hvis det er eth0:
ifconfig eth0

Ellers kan du nok finde for alle adaptere med
ifconfig
Avatar billede lasse_hyldal Nybegynder
06. marts 2003 - 15:07 #8
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester