Am instalat java sdk 1.4.0, si programe simple de gen hello world merg
bine. Dupa care am facut doua programele, unul transmite un string
printr-un socket, celalalt il receptioneaza, il afiseaza si trimite
inapoi o confirmare. Pe windows a mers fara nazuri, dar in linux cand ii
dau un "java ServerS 127.0.0.1" primesc mesajul urmator:
[mugur@enkidu mugur]$ java ServerS 127.0.0.1
Am pornit serverul!
Inchid sochetul!
[mugur@enkidu mugur]$ java ServerS
Am pornit serverul!
Inchid sochetul!
Ceva e in neregula aici. Am oprit si iptables, just in case, si tot nu
merge. Ba mai mult, daca le rulez ca root, lucrurile merg ca pe roate.
Deci unde e problema de permisiuni, si ce trebuie sa fac sa o corectez ?
Am un redhat 8.0.
Programele le listez mai jos, poate e de vreun ajutor (si nu faceti
misto de mine, ca sunt incepator in java :) ).
//client pentru o aplicatie de cacao
import java.net.*;
import java.io.*;
public class ClientS
{ public static void main(String args[])
{
String bubu = "bubu vus here!";
DatagramPacket pachet = null;
DatagramPacket rpachet = null;
byte[] buffer = new byte[15];
try
{
if (args.length != 1)
{System.out.println("Se foloseste asa: java ClientS <calculator>");
return;
}
DatagramSocket sochet = new DatagramSocket(300);
InetAddress adresa = InetAddress.getByName(args[0]);
buffer = bubu.getBytes();
pachet = new DatagramPacket(buffer, bubu.length(), adresa, 301);
sochet.send(pachet);
//deci pana acum am trimis un pachet
//ar trebui sa astept confirmare de la server
rpachet = new DatagramPacket(buffer, buffer.length);
sochet.receive(rpachet);
buffer = rpachet.getData();
//si hai sa tiparesc si confirmarea!
System.out.println("Am primit confirmarea!\n");
String confirmare = new String (buffer, 0, rpachet.getLength());
System.out.println(confirmare);
}
catch(Exception e)
{System.err.println(e);
}
}
}
//server pentru o aplicatie de cacao
import java.net.*;
import java.io.*;
public class ServerS
{public static void main(String[] args)
{
byte[] buffer = new byte[15];
System.out.println("Am pornit serverul!");
DatagramSocket sochet = null;
DatagramPacket pachet = null;
DatagramPacket rpachet = null;
InetAddress addr = null;
try{
sochet = new DatagramSocket(301);
System.out.println("astept clientul ...");
while(true)
{
rpachet = new DatagramPacket(buffer, buffer.length);
sochet.receive(rpachet);
buffer = rpachet.getData();
String lula = new String(buffer, 0, rpachet.getLength());
System.out.println(lula);
addr = rpachet.getAddress();
//pana aici am primit pachetul
//acum dau reply
String confirmare = new String ("S-a primit confirmarea!");
buffer = confirmare.getBytes();
pachet = new DatagramPacket(buffer, confirmare.length(), addr, 300);
sochet.send(pachet);
}
}
catch(Exception e)
{System.err.println("Inchid sochetul!");
if (sochet != null)
sochet.close();
}
}
}
--
Mugurel Tudor ([EMAIL PROTECTED])
Linux Registered User: 212231
------------------------------------------------------------------
Microsoft and Apple make the easy things very easy and the hard
things impossible. *BSD and Linux make the easy things challenging
and the hard things difficult but possible. -- Larry Wall
---
Pentru dezabonare, trimiteti mail la
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/