Avatar billede hippien Nybegynder
13. juli 2003 - 18:50 Der er 10 kommentarer og
1 løsning

Linux Assembly - Net

Jeg vil gerne begynde at programmere nogle netværksapplikationer ved hjælp af syscall 102 (sys_socketcall)... functionen ser således ud i C: "socketcall(int call, unsigned long * args)"

Jeg kan regne ud at int call skal indikere hvilken socket-funktion jeg vil benytte mig af, men hvordan finder jeg ud af hvad jeg skal bruge for at kalde 'listen', 'connect' etc? Jeg er helt blank m.h.t. args... jeg kan tænke mig til at den skal indeholde informationer om hvilken port den skal lytte på hvis man kalder listen... og både om port og ip hvis man bruger connect.

Håber der er nogen der kan hjælpe !
Avatar billede arne_v Ekspert
13. juli 2003 - 19:02 #1
Der er ikke meget at komme efter på nettet.

Det eneste jeg kunen finde var:
  http://khdp.org/docs/project/b4b0/3/b4b0-3-7.txt
hvor der er lidt midt på siden.
Avatar billede hippien Nybegynder
13. juli 2003 - 19:09 #2
ja, den fandt jeg også... fatter dog ikke meget af at&t syntaksen :(

havde håbet på at en herinde havde lidt erfaring med det måske :)
Avatar billede arne_v Ekspert
13. juli 2003 - 19:14 #3
Ignorer syntaxen.

Det relevante er dette stykke C kode:

unsigned long args[] = { AF_INET, SOCK_STREAM, IPPROTO_IP };
sfd = socketcall(SYS_SOCKET, args);

1. argument = en SYS_ konstant der fortæller hvilket kald det er
2. argument = et array af long (C) eller array af doubleword (assembler)
              med et element per argument i den C funktion man emulerer
Avatar billede arne_v Ekspert
13. juli 2003 - 19:18 #4
Der står ovenikøbet at den relevant .h file r:
  linux/net.h
(på min Redhat er det /usr/include/linux/net.h)
Avatar billede hippien Nybegynder
13. juli 2003 - 19:24 #5
well ok... har da lært lidt, men har stadig ikke helt fået fat i det... Du lyder til at have forstand på den slags, så ville det være for meget forlangt at bede dig lave et lille eksempel hvis du kan ? Vi er her jo for at hjælpe hinanden (hehe:)
Avatar billede arne_v Ekspert
13. juli 2003 - 19:31 #6
Der er faktisk noget der ligner eksempler på:
  http://racl.oltrelinux.com/tutorial/asmsocket.pdf

(desværre er teksten ikke på et af de mere gængse sprog !!!!)
Avatar billede hippien Nybegynder
13. juli 2003 - 19:33 #7
Jamen det ligner sgu noget der kan bruges selvom det er på fransk ;)

Tak endnu engang.
Avatar billede hippien Nybegynder
13. juli 2003 - 19:34 #8
Hvis du vil have de 100 point så lav et svar jeg kan godkende !
Avatar billede arne_v Ekspert
13. juli 2003 - 19:34 #9
Jeg har aldrig skrevet assembler til Linux.

Men jeg har kodet temmeligt meget i assembler (vel en ca. 50000
linier 1986-94).
Avatar billede arne_v Ekspert
13. juli 2003 - 19:35 #10
svar
Avatar billede arne_v Ekspert
13. juli 2003 - 19:36 #11
(jeg tror iøvrigt ikke at det er fransk - snarere italiensk)
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