ya uykusuzluktan galiba :D
recv (man page-den okudugum kadariyla) nonblocking socketlerde bufferde
birsey bulamayinca errno olarak EAGAIN donduruyormus
bende socketi kapatiyormusum

errno'ya dikkatimi cektiginiz icin cok tesekkur ederim Murat bey

pratikte denemek kaldi...



----- Original Message ----- 
From: "Murat Balaban" <[EMAIL PROTECTED]>
To: <freebsd@lists.enderunix.org>
Sent: Thursday, March 10, 2005 12:25 PM
Subject: Re: [freebsd] multi-threaded server


>
> Selam,
> Gayet alengirli bir sahaya ilk adiminizi atmis bulunmaktasiniz :)
>
> > - thread'e 1 client atandiktan sonra thread rutinindeki while'in donmesi
> > duruyor. ama hala o baglanan client'tan gelen verileri okuyabiliyor.
>
> while'in donmesi duruyor derken neyi kastediyorsunuz? while'dan mi cikiyor
> program takiliyor mu? 1. durumda kodun bir yerinde ya return ya da break
> vardir, ikinci durumda da soket blocking mode'da oldugu icin buffer'inda
> veri olmayan bir descriptor'da block olmustur.
>
> > -socketin blocking oldugunu dusunerek nonblocking yaptigimda client'tan
> >  data geldikten sonra sonra tekrar okumaya calistigimda -1 aliyorum.
>
> errno ne?
>
> > -her thread'e 1er client atandiktan sonra baglanan clientlarin isleri
> > yapilamiyor. yani recv ile gelen datayi alamiyorum.
>
> recv ya hata doner, donmuyorsa da socket buffer'da veri yoktur.
>
> > - thread rutinin icinde select(2) kullanmaya calistim fakat bu sefer
bagli
> > clientlardan recv ile data alamiyorum.
>
> Bence Ricahrd Stevens'in Unix Network Programming kitabini heen edinin
> ve initial kisimlarini okuyun.
>
> Ikinci tavsiyem de multithreaded bir server dizayni yerine, multiprocess
> ve shared memory, pipe, message queue gibi IPC mekanizmalarini kullan
> diginiz bir server dizayn edin. Multithreaded bir server programlamak,
> gerektirdigi dikkat ve istedigi uzmanliktan dolayi su an icin sizin
> icin bayagi basagrisi olabilir.
>
> Murat
>
> ---------------------------------------------------------------------
> Cikmak icin, e-mail: [EMAIL PROTECTED]
> Liste arsivi: http://lists.enderunix.org ve
http://www.mail-archive.com/freebsd@lists.enderunix.org
> Turkiye'nin ilk FreeBSD kitabi: http://www.acikkod.com/freebsd.php
>
>
>


---------------------------------------------------------------------
Cikmak icin, e-mail: [EMAIL PROTECTED]
Liste arsivi: http://lists.enderunix.org ve 
http://www.mail-archive.com/freebsd@lists.enderunix.org
Turkiye'nin ilk FreeBSD kitabi: http://www.acikkod.com/freebsd.php


Cevap