![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
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, |
|
||||
|
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 |
|
|||||
|
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. |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|