Avatar billede stringbuffer Nybegynder
30. september 2002 - 23:05 Der er 5 kommentarer og
1 løsning

Se om der er connections til en port

Jeg vil gerne kunne overvåge en bestemt port på min server for at se om der er forbindelser til det. Koden skal køre i en løkke, hvor der kan kaldes en funktion når der ikke er flere forbindelser.

Det er sådan noget som man kan se hvis man kører netstat - der står "ESTABLISHED" for hver forbindelse, der er åbnet til min service.

Jeg har ikke brug for alle mulige informationer om forbindelserne, bare om der er mindst en eller ej. Kravet er at programmet kun må belaste maskinen minimalt selvom der foretages tjek hver ½ sekund.

Kode eksempel ønskes.
Avatar billede stringbuffer Nybegynder
01. oktober 2002 - 02:42 #1
Ok, jeg fandt selv en måde at gøre det på - ved at læse /proc/net/tcp og se om der er nogen sockets med denne serverport, der har status 01

Ikke specielt elegant, mest fordi formatet af denne pseudo-fil er dårligt dokumenteret, men det virker, og lader ikke til at bruge mere end maks 0.1% CPU ved 10 refreshes i sekundet.
Avatar billede stringbuffer Nybegynder
01. oktober 2002 - 02:43 #2
Jeg vil dog gerne høre andres forslag. Point fordeles efter hvor spændende jeg finder dem.
Avatar billede kamikaze Nybegynder
03. oktober 2002 - 10:03 #3
Kan du uddybe din egen løsning lidt?
Avatar billede stringbuffer Nybegynder
03. oktober 2002 - 12:21 #4
kamikaze <- hvad vil du have uddybet?
Jeg kører linux, og her kan man både det ene og det andet. Blandt andet er det noget, der hedder tcp socket tabel, og den kan man finde i "filen" /proc/net/tcp
Jeg gennmløber bare filen linie efter linie og sammenligner feltet for local port med det port, jeg vil holde øje med, og feltet for status med "01", som tilsyneladende er det, der angiver at den er connected.
Skide nemt.

Kan det gøres på andre måder end med /proc/net/tcp ???
Avatar billede kamikaze Nybegynder
03. oktober 2002 - 14:38 #5
stringbuffer >> det var det, jeg gerne vill have uddybet :o)

(BTW: God idé at skrive i spm at du kører linux )
Avatar billede stringbuffer Nybegynder
03. oktober 2002 - 16:19 #6
det overvejede jeg også, men så tænkte jeg at der måske var en måde at løse opgaven gennem socket/winsock API.
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