Avatar billede a-torsten Nybegynder
26. marts 2003 - 12:56 Der er 4 kommentarer og
3 løsninger

String Til Metodekald

Hej....

Sidder og leger lidt med Sockets, og har i den forbindelse sat mig for at jeg vil sende Methode-kald frem og tilbage mellem klient og server via strege...

Eks
String a = "setSpiller(Hans, 27, hund, vand)" ...

Der skal så laves en classe som omformer strengen til metodekald..

har prøvet med følgende:
class String2Metode
{
    static String a = "b_03_43";
    static String tmp = "";
    static String spillerID = "";
    static String attribut = "";
   
   
    public static void main(String[] args)
    {
    spillerID = ""+a.charAt(2)+""+a.charAt(3)+"";
   
    char[] atmp = a.toCharArray();
   
    for(int i = 5; i < atmp.length ; i++)
        attribut = ""+attribut+""+atmp[i]+"";
   
       
       
    switch (a.charAt(0))
    {
    case 'a':
        tmp = "sendOrd("+spillerID+","+attribut+")";
        System.out.println(tmp);
        break;
    case 'b':
        tmp = "tildelPoint("+spillerID+","+attribut+")";
        System.out.println(tmp);
        break;
    }   
    }   
}

Følgende tager ikke højde for at der kan være x antal atributter på metoderne....


Nogen der har en ide..??

-Anders
Avatar billede viht Nybegynder
26. marts 2003 - 12:59 #1
Jeg vil nærmere råde dig til at kigge på SOAP, nemlig XML-RPC:

http://java.sun.com/xml/jaxrpc/

Ellers er der selvfølgelig supermarked-sockets, RMI.
Avatar billede disky Nybegynder
26. marts 2003 - 13:00 #2
Brug StringTokenizer til at skille strengen ad med istedet.

Du kan sende antal parametere med som en parameter i strengen.
Avatar billede a-torsten Nybegynder
26. marts 2003 - 13:00 #3
Har jeg overvejet... Vil bare hellere bruge pure sockets..
Avatar billede disky Nybegynder
26. marts 2003 - 13:00 #4
Men RMI er nok den pæne løsning af din problem, men hvis det bare er for sjov skyld er din ide ok.
Avatar billede a-torsten Nybegynder
26. marts 2003 - 13:06 #5
Kan en af jer ikke lave en lille metode som skiller følgende af

String a = "setSpiller(Hans, 27, hund, vand)"

Og hvordan kan jeg få "" uden om String atributter...

-Anders

PS: Ved godt at det måske bedre akn betale sig med RMI eller Corba, men jeg ku godt tænke mikg at lave det i sockets,,
Avatar billede viht Nybegynder
26. marts 2003 - 13:21 #6
Send det i XML:

<method index="12"> // kald metode nr. 12
    <parameter1>
        "hejsa"
    </parameter1>
    <parameter2>
        12
    </parameter2>
    <parameter3>
        "hejsa der"
    </parameter3>
</method>
Avatar billede arne_v Ekspert
26. marts 2003 - 13:56 #7
Der er masser af muligheder, de fleste har allerede været nævnt:

1)  brug RMI (dette her er en klassisk RMI løsning)
2)  brug Web Service (SOAP over HTTP)
3)  send et data objekt over Socket (OutputObjectStream writeObject
    og InputObjectStream readObject)

Du kan naturligvis godt lave en send & receive String med parsning
der virker, men det kan nemt blive langhåret. Overvej f.eks. mellemrum
og komma i streng parametre !
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