The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > High Level Programmering
.
google unix.com



High Level Programmering Post spørsmål om C, C + +, Java, SQL og andre programmeringsspråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Client wont forbinde å server gerperrett IP Networking 2 03-29-2008 11:59
Shell Script mislykkes med "kan ikke koble til klienten" sseenu79 HP-UX 2 12-20-2006 10:47
Kunne ikke koble til serveren srikanthus2002 UNIX for Dummies Spørsmål og svar 4 11-28-2006 07:31
Fjern Server dvalemodus alvintai Sun Solaris 16 04-08-2005 09:08
multi-threaded server, pthreads, sove Parahat Melayev High Level Programmering 0 03-16-2005 12:38

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 07-17-2002
chenhao_no1 chenhao_no1 is offline
Registrert bruker
  
 

Bli Dato: juli 2002
Innlegg: 32
Question kan klienten koble () når serveren i dvale (300), etter lytte (fd, 5);

0. Med hensyn til deg
1. Takk for at du leser brevet
2. En server ringe søvn (20) etter listern (fd, 5). Når serveren er i søvn, en klient kobler () til den vellykkede og sende mye utnevnt data.
3. Hvorfor? Jeg tror at serveren er i dvale (beasue kaller jeg sover ()), det donot blokk akseptere (), hvordan kan klienten koble den vellykket,
  #2 (permalink)  
Old 07-17-2002
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9114
Du kan ikke gjøre det.

Accept () bør være i stand til å enten blokkere eller ikke blokkere på din kontroll. Hvis du har slått på en ikke-blokkerende alternativ på sokkelen, så ja du godtar ()-kallet returnerer en feil hvis det ikke er noen utestående tilkoblinger. Hvis du bestemmer deg for å sove (), så noen forbindelser som kommer mens serveren din sover vil bli bli ventende tilkoblinger. Etter sleep (), kan det re-issue godkjenningsknappen () og opprette en tilkobling.

Slå på en ikke-blokkerende alternativet og deretter polling fra tid til annen er tenkt å fungere. Men jeg har aldri sett det gjort. Jeg ville ikke sove på 300 sekunder skjønt. Det er en veldig lang tid å holde en forbindelse venter på en kontakt.

Men den vanlige metoden er å la akseptere () for å blokkere og vente på en tilkobling til forekomme.

Hvis du godtar () ikke blokkerer så måte må du ha bedt om det ikke til. Den vanlige måten å gjøre dette på ville være å ha satt O_NONBLOCK.

Hvis du godtar () kaller ikke oppfører seg slik jeg beskrev, så det må være brutt. Men jeg finner det vanskelig å tro. Aldri blokkerer ville være et svært alvorlig problem.
  #3 (permalink)  
Old 07-18-2002
chenhao_no1 chenhao_no1 is offline
Registrert bruker
  
 

Bli Dato: juli 2002
Innlegg: 32
Klienten kan koble () the Sleeping Server vellykket

1. med hensyn til Perderabo og takk til alle som leser innlegget
2. Jeg et eksperiment:
Server kaller socket () bind () listern () i rekkefølge, og kaller søvn (30) bak lytte og før jeg ringer godta (). Når serveren er i dvale, klienten kobler () den sovende Server vellykkede og sende mye oppnevnt av data til den sovende Server, og deretter blokkere fordi recvive buffer av Server er full (Server sover)
3. Jeg henviser til <<Unix Nettverk Programmering>> Volume 1 (forfatter: W. Richard Stevens) senere.
Jeg fant ut at aksepterer () bare "tilbake neste avsluttet tilkoblingen fra fronten på fullført tilkoblingen køen). Høre det ()-funksjonen gjør "......... , Data som mottas etter de tre-veis håndtrykk fullført, men før serveren samtalen godta (), skal være kø av serveren TCP, opp til størrelsen av tilkoblede socket's motta buffer "
4. Så jeg tror: I SERVER side, etter at vi kaller lytte (), Server programmet registrere en oppnevnt kontakten til kjernen, og kjernen vil overvåke oppnevnt portnummeret og vent til klienten for å koble.
Så et annet spørsmål oppstår:
5. Hvordan overvåke kjernen fastsatt porten når Server programmet gjøre andre ting (dvs. ringe sleep () etter lytte () eller ikke okkupere prosessoren på det tidspunktet) og
6. Hvordan doese kjernen for å varsle hvilke prosess som dataene kom hvis mange Server programmet lar kjernen til monitory annen port
  #4 (permalink)  
Old 07-18-2002
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9114
2) Det er interessant! Jeg har alltid trodd at kjernen ventet på godta () for å etablere en tilkobling. Bare går å vise at jeg ikke vet alt.

5) Porten har en åpen socket knyttet til den. Og kjernen vet hvilken port går som socket. TCP / IP-koden har jobben med å gjøre data tilgjengelig for socket.

6) Hvis prosessen bruker O-NONBLOCK (eller tilsvarende) som din er, ikke kjernen ingenting. Håpet er at prosessen til slutt vil bestemme seg for å utstede de akseptere () eller read () eller hva. Hvis prosessen har blokkert venter på å finne data om sokkelen, vil det bli "vekket" når data kommer inn. Dette vil sette den på rømmen køen. Og når en cpu kjører den, vil systemet ringer endelig komplett.
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 07:52.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0