![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| HP-UX HP-UX (Hewlett Packard Unix) är Hewlett-Packard patentskyddade genomförandet av Unix operativsystem, som bygger på System V. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Problemet med socket behandlingen | swap007 | UNIX för avancerade & Expertanvändare | 2 | 05-21-2008 02:08 |
| HTTP Keep-Alive Socket problem | imdupeng | High Level Programming | 0 | 03-29-2008 09:11 |
| socket kommunikation, men inte skriva | madfox | High Level Programming | 2 | 12-04-2007 03:44 |
| Problem med att ansluta till Socket | Stevhp | High Level Programming | 6 | 04-30-2007 08:27 |
| Socket Problem | Agent007 | High Level Programming | 3 | 04-03-2004 09:15 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
#1 (permalänk)
|
||||
|
||||
|
Vårt system är att ha en server och flera klienter. Vi följer kunden FDS med select () system samtal i HP-UX.
Efter uppkoppling som använder sockel med fjärrkontrollen kunden innan du börjar skicka data vi kontrollera status för uttaget med hjälp av Välj ()-anropet. För första 16 kunderna att välja () samtalet frigöras och FD_ISSET () returnerar framgång. Men från den 17: e kund och framåt, det väljer () skall upphävas och FD_ISSET () kan inte visa framgång (det tillbaka negativt värde), både i HP-UX 11 och 11i. Men samma logik fungerar bra till 1024 kunder i Solaris, AIX, Linux. Källkoden nämns nedan, Tala om hur man kan rätta till detta problem. fd_set Writefds; struct timeval Timeout; int RetCode; int RetValue; int SockDesc; struct sockaddr_in klient; char BulkData [5000] \u003d "Bekräftelse"; int retval; int clientlen \u003d sizeof (struct sockaddr_in); client.sin_family \u003d AF_INET; client.sin_addr.s_addr \u003d INADDR_ANY; client.sin_port \u003d htons (SERVER_PORT); SockDesc \u003d socket (AF_INET, SOCK_STREAM, 0); Connect (SockDesc, & klient (socklen_t) clientlen); Timeout.tv_sec \u003d 0; Timeout.tv_usec \u003d 0; FD_ZERO (& Writefds); FD_SET (SockDesc, & Writefds); RetCode \u003d select (0, NULL, & Writefds, NULL, & Timeout); if (RetCode> 0) ( retval \u003d FD_ISSET (SockDesc, & Writefds); if (retval> 0) ( sända (SockDesc, szBulkData, (size_t) sizeof (szBulkData), 0); ) annan ( printf ( "är FD_ISSET misslyckades:% d \ n", retval); ) ) else if (RetCode \u003d\u003d -1) ( printf ( "Välj avkastning Error:% d \ n", errno); ) else if (RetCode \u003d\u003d 0) ( printf ( "Välj återgå 0 [timeout inträffade]. \ n"); ) |
![]() |
| Komihåglista |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|