26. oktober 2002 - 17:24Der er
11 kommentarer og 1 løsning
socket forbindelse
vi har oprettet en socket forbindelse mellem client og server. Vi vil gerne sende flere structs over send og receive funktionerne. hvordan kan dette lade sig gøre?
I kan enten send en struct per send/recv eller i kan pakke alle struct'ene ned i en data-struktur (enten en ny struct eller bare et char array) og bruge en enkelt send/recv.
Nu kan vi til dels godt få oprettet forbindelse mellem en send og en receive. men efterfølgende ville vi også gerne kunne sende den anden vej. altså have en send funktion i den fil hvor der er en receive. Men der opstår et problem med at få programmet til at læse de nye funktioner. Det er som om at den ikke vil gå ud af den første send og receive funktion og kalde andre funktioner. Er der en logisk årsag til dette?
I skal være opmærksom på at recv default er blocking d.v.s. at hvis der ikke er noget at læse, så venter den indtil der kommer noget.
Så enten skal I have en helt klar protokol mellem client og server programmet, så de ved hvornår de skal recv og hvornår de ikke skal gøre det eller så skal I have fat i lidt mere avancerede løsninger.
F.eks. recv non-blocking fra den socket eller have to sockets of to tråde - den ene tråde skriver til den ene socket og den anden tråd læser fra den anden socket.
Der er *rigtigt* mange muligheder.
Men prøv og se om ikke I kan designe kommunikationen, så I kan undgå den slags (der er en del muligheder for at lave fejl i den slags kode).
Selv om vi modtager noget på den første receive, er den ikke meget for at gå videre og læse næste funktion. lille kode bid: /*server*/ int main() { writeToCLient(fd);
readToClient(fd); }
/*client*/ int main() { readFromServer(fd); writeToServer(fd); } problemet er at når den har kaldt henholdvis writeToClient(fd)(i server) og readFromServer(fd) (i Client) så kan vi ikke få den til at kalde de readFromClient(fd) og writeToServer(fd). hvad kan det skyldes? og der bliver sendt noget fra writeToClient(fd)
Hey Arne_v. vi har fået styr på tingene nu. tak for hjælpen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.