🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
3 messages
3 total messages Started by Nitro Tue, 26 Oct 2004 12:20
Nog eens perl
#2035
Author: Nitro
Date: Tue, 26 Oct 2004 12:20
66 lines
2586 bytes
ik heb een nieuw probleem in perl:

ik heb mijn code (zie onderaan) om te connecten met een client op een
server. Alles gaat normaal, tot in de eerste lus, aan de lijn:

        print("ready to accept");

Deze lijn verschijnt pas van zodra er een client geconnect heeft, niet
ervoor.

De lijn print("Client connected"); wordt zelfs helemaal niet weergegeven.
Ook kan ik maar met 1 client tegelijk connecten. De tweede is wel
connected, maar doet gewoon niets.

Ik gebruik telnet om dit te testen.

Nu heeft men mij verteld dat perl niet altijd alles uitvoert in de
volgorde dat het gecodeerd is, maar ik zou niet weten hoe ik dit kan
oplossen.

graag enige hulp...


Nitro





#!/usr/bin/perl

use warnings;
use strict;
use Socket;
use Thread;

socket(HANDLE, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
print("TCP socket created ...\n");
bind(HANDLE, sockaddr_in(5000, INADDR_ANY));
print("Binding socket to port 5000 ...\n");
listen(HANDLE, 10);
print("Listening for connections ...\n");

my @threads; 

# accepteert connecties en geeft die door aan Thread Tclient
while(1)
{
        print("ready to accept");
        accept(my $CLIENT, HANDLE);
        print("Connection accepted ($CLIENT).\nStarting new thread ...\n");
        push(@threads, new Thread(Tclient($CLIENT)));
}

# 1 thread per client: authenticatie, ...
sub Tclient
{
        my($conn) = @_;
        print("Client connected");
        my $in;
        while($in = <$conn>)
        {
                send($conn, "blabla", 0);
        }

}
Re: Nog eens perl
#2036
Author: TL
Date: Tue, 26 Oct 2004 15:12
29 lines
2252 bytes
On Tue, 26 Oct 2004 14:20:48 +0200, Nitro wrote:

> ik heb een nieuw probleem in perl:
> 
> ik heb mijn code (zie onderaan) om te connecten met een client op een
> server. Alles gaat normaal, tot in de eerste lus, aan de lijn:
> 
>         print("ready to accept");
> 
> Deze lijn verschijnt pas van zodra er een client geconnect heeft, niet
> ervoor.
> 
> De lijn print("Client connected"); wordt zelfs helemaal niet weergegeven.
> Ook kan ik maar met 1 client tegelijk connecten. De tweede is wel
> connected, maar doet gewoon niets.
> 
> Ik gebruik telnet om dit te testen.
> 
> Nu heeft men mij verteld dat perl niet altijd alles uitvoert in de
> volgorde dat het gecodeerd is, maar ik zou niet weten hoe ik dit kan
> oplossen.
> 
> graag enige hulp...
> 
> 

die string wordt in de buffer geplaatst maar blijkbaar wordt de output
niet geflushed wanneer er geen newline character staat.
\n dus toevoegen ...
Re: Nog eens perl
#2037
Author: Nitro
Date: Tue, 26 Oct 2004 16:01
40 lines
2335 bytes
On Tue, 26 Oct 2004 17:12:00 +0200, TL wrote:

> On Tue, 26 Oct 2004 14:20:48 +0200, Nitro wrote:
> 
>> ik heb een nieuw probleem in perl:
>> 
>> ik heb mijn code (zie onderaan) om te connecten met een client op een
>> server. Alles gaat normaal, tot in de eerste lus, aan de lijn:
>> 
>>         print("ready to accept");
>> 
>> Deze lijn verschijnt pas van zodra er een client geconnect heeft, niet
>> ervoor.
>> 
>> De lijn print("Client connected"); wordt zelfs helemaal niet weergegeven.
>> Ook kan ik maar met 1 client tegelijk connecten. De tweede is wel
>> connected, maar doet gewoon niets.
>> 
>> Ik gebruik telnet om dit te testen.
>> 
>> Nu heeft men mij verteld dat perl niet altijd alles uitvoert in de
>> volgorde dat het gecodeerd is, maar ik zou niet weten hoe ik dit kan
>> oplossen.
>> 
>> graag enige hulp...
>> 
>> 
> 
> die string wordt in de buffer geplaatst maar blijkbaar wordt de output
> niet geflushed wanneer er geen newline character staat.
> \n dus toevoegen ...

idd, het werkt nu.

Mijn tweede probleem lag blijkbaar aan de definitie van mijn thread, want
ik heb het nu gedaan zoals men mij eerder verbeterd had, en het werkt :)

Merci

Nitro
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads