Avatar billede mxs Nybegynder
10. februar 2004 - 16:23 Der er 9 kommentarer

Sockets? Vil gerne igang, men det virker ikke

Hey eksperten.dk

Jeg er igang med at kigge på sockets, men jeg har et problem. Jeg har ikke selv skrevet noget endnu, men jeg har et script som jeg har fundet på devsched. Her er den

<?

// set some variables
$host = "127.0.0.4";
$port = 1234;

// don't timeout!
set_time_limit(0);

// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create
socket\n");

// bind socket to port
$result = socket_bind($socket, $host, $port) or die("Could not bind to
socket\n");

// start listening for connections
$result = socket_listen($socket, 3) or die("Could not set up socket
listener\n");

// accept incoming connections
// spawn another socket to handle communication
$spawn = socket_accept($socket) or die("Could not accept incoming
connection\n");

// read client input
$input = socket_read($spawn, 1024) or die("Could not read input\n");

// clean up input string
$input = trim($input);

// reverse client input and send back
$output = strrev($input) . "\n";
socket_write($spawn, $output, strlen ($output)) or die("Could not write
output\n");

// close sockets
socket_close($spawn);
socket_close($socket);
?>

Jeg har scriptet til at ligge på min windows server, men hvordan starter jeg den? Når jeg åbner den med min browser på min egen computer så sker der ingenting, men da jeg ikke ved så pokkers meget om dette hersens så er det nok forkert.

Mit spørgsmål er, hvordan starter jeg scriptet? Altså skal jeg sidde ved en anden computer og telnet til 127.0.0.4 på port 1234?

Tror det har noget at gøre med at jeg bare har gemt scriptet og ikke startet den, men hvordan gør jeg det? Starter mit script på den ene computer og laver en forbindelse til den via telnet fra en anden computer?

Håber i forstår det! :o)
Avatar billede fangel Nybegynder
10. februar 2004 - 16:41 #1
du skal kører scriptet (dvs gå ind på det via browser eller command-line) og så få et andet program til at connecte til socketen (fx telnet)

Morten
Avatar billede mxs Nybegynder
10. februar 2004 - 16:47 #2
Ok det prøver jeg!! Men når jeg går ind via browseren så kommer den med denne meddelse:

Warning: socket_bind() unable to bind address [10048]: Normalt må en socket-adresse (protokol/netværksadresse/port) kun bruges én gang. in c:\phpdev\www\kodning\sockets\sockets.php on line 15
Could not bind to socket

Jeg bruger 127.0.0.56 på 1234

Er det fordi jeg ikke kan bruge den ip?

Hvordan kører jeg mit script fra command line? Det virker ikke bare at finde stien fordi gør man det så åbner jeg bare filen i notepad!!
Avatar billede fangel Nybegynder
10. februar 2004 - 16:52 #3
sig fx

c:\php\php.exe c:\web\filer\script.php

burde kunne klare det... (udskift med sti til php.exe og .php fil)

--

den fejler nok enten fordi du ikke angiver din IP som host, eller en port som er i brug...

Morten
Avatar billede mxs Nybegynder
10. februar 2004 - 16:59 #4
Ok kan godt køre den fra commando line, men hvordn tjekker jeg om en ip ikke er i brug? Altså kan jeg godt bruge 192.168.1.34 på port 1234?
Hvad mener du med at jeg skal angive min ip som host?
Avatar billede mxs Nybegynder
10. februar 2004 - 17:11 #5
Nu har jeg prøvet med 127.0.0.123 på port 12 og den kommer ikke med siden, men loader bare færdig!! Så det betyder vel at den ikke er i brug, men nu prøver jeg så at tjekke om jeg kan komme ind på serveren via telnet på samme computer, men den siger at den ikke kan få forbindelse til værten. Er det fordi jeg skal prøve at connecte fra en anden computer?
Avatar billede mxs Nybegynder
10. februar 2004 - 17:32 #6
Nu har jeg prøvet fra en anden computer og der står at den ikke kunne oprette forbindelsen for dest. computeren aktivt nægtede det. Hvad betyder det? At jeg ikke har åbnet porten eller andet på mit netkort? Eller at alle mine porte er spærret?
Avatar billede fangel Nybegynder
10. februar 2004 - 18:17 #7
1) brug enten din egen ip (fx 192.168.0.100) eller loppback (127.0.0.1) som host - hvis den ikke skriver noget, så kører den
2) sørg for du ikke har fx en firewall der stopper indgående forbindelser på den port
3) tag din egen comp (connect til 127.0.0.1) eller en anden (connect til den først comp's ip) og se om den acceptere... prøv at skriv noget i dit socket-vindue og tryk enter

Morten
Avatar billede mxs Nybegynder
10. februar 2004 - 18:30 #8
Jeg har et antivirus program som jeg har fået installeret på min skole, men jeg kan ikke disable den. De har gjort sådan at jeg ikke kan og det er lidt irriterende og jeg tror at det er det som stopper det!! ØV!!:(
Avatar billede mxs Nybegynder
15. februar 2004 - 23:30 #9
Hvis jeg skal lave et script som bare åbner en port og skriver "Du er logget på" til brugeren (Så jeg kan se at der er åben en forbindelse) Hvordan skal den så se ud?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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