Avatar billede mickni33 Nybegynder
03. maj 2001 - 10:38 Der er 3 kommentarer og
1 løsning

Client/Server over socket

////// CLIENT SIDEN ///////////////
T client;  // template variable

write(sockfd,client,100);  //sender client til server

read(sockfd,&client,100);    //læser og   
recv(sockfd,&client,100,0);    //reciever den nye client

cout<<client;
////////SERVER SIDEN//////////////
T clientstreng;

read(client_sockfd,&clientstreng,100);

/* udfører et eller andet og giver
clientstreng en ny værdi */

write (client_sockfd,&clientstreng,100);
send (client_sockfd,&clientstreng,100,0);
//////////////////////////////////////////

når programmet kører går det ned \'segmentation fault\' men hvis jeg fjerner
cout linien vil det gerne køre.
cout << er overloadet i den template klasse som T står for så det burde virke.....Men det gør det ikke, hvorfor f..... ikke???

Jeg kører i Linux.
Avatar billede peter_m Nybegynder
03. maj 2001 - 11:54 #1
Har du forsøgt at debugge dig frem til den værdi client indeholder for og om det egentlig er lovlig for cout
Avatar billede stringbuffer Nybegynder
03. maj 2001 - 22:21 #2
Hvorfor laver du både en write og en send på serveren?
Avatar billede mickni33 Nybegynder
04. maj 2001 - 08:26 #3
stringbuffer>>
ved ikke hvorfor, for jeg har også en read og recv  i client, men det har jeg rettet.\'
Men jeg har selv fundet ud af hva der var galt ved hjælp af udelukkelses metoden.

min template T indeholder et objekt hvor der er indvolveret to \'string\' og en \'int\'. så det er et objekt med disse tre typer der skal igennem socket\'en.
men man kan ikke fører en string type igennem måske fordi de systemkald der bruges er skrevet i C. jeg prøvede at sende de tre typer igennem hver for sig og det var kun \'int\'en der kom igennem. efter jeg ændrede de tre typer til char[] så kom de alla igennem, når jeg gjorde hver for sig. template T ville stadig ikke føres igennem, som et objekt.Og måske er det fordi det er et objekt af en klasse, og da C jo ikke har klasser er det måske problemet. Men så har jeg tænkt på at ligge de to char[] og int\'en ind i en struct, måske går det bedre, det er da noget C\'s systemkald kender......pyyha... måske skulle jeg prøve en nemmere \'spaghetti metode\' ..
Avatar billede mickni33 Nybegynder
04. maj 2001 - 08:27 #4

Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester