Bonne réception des packets (Objective-c)

Tomsurf83

Membre enregistré
10 Juillet 2008
9
0
Bonjour,

J'utilise actuellement SmallSocket pour utiliser les sockets mais je rencontre un problème lorsque le serveur m'envoie plusieurs messages très rapidement mon programme va recevoir que 2 messages sur 3 par exemple mais il lis le premier saute le second et lis le dernier. J'utilise une boucle qui détecte dés qu'il à reçu au moins 1 caractère il stop puis passe à la seconde boucle ect...
J'en est déduis que le problème est plutôt temporelle (le serveur envoie les trois messages avec une intervalle trop courte).

Mais je ne trouve pas de solution.

Merci d'avance pour votre aide. :)
 
montre ton code, si tu es en stream ? while packet je ne comprend pas ton probleme et ne connais pas smallsocket,
enfin je mens un peu mais je soupçonne que tu fais du serveur-client au lieu de client-server
 
Smallsocket est composé de 2 classes pour permettre d'utiliser les sockets mais je n'utilise pas stream et je ne sais pas si il y a une fonction qui permet de passer en stream avec smallsocket. Ou alors je devrais utiliser un framwork comme omninetworking pour faire une connexion serveur/client ?
Toutes les solutions sont les bienvenue.
 
Smallsocket est composé de 2 classes pour permettre d'utiliser les sockets mais je n'utilise pas stream et je ne sais pas si il y a une fonction qui permet de passer en stream avec smallsocket. Ou alors je devrais utiliser un framwork comme omninetworking pour faire une connexion serveur/client ?
Toutes les solutions sont les bienvenue.

je viens de jeter un coup d'oeil rapide a smallsocket c'est bien du stream, donc je soupconne que tu merdouilles, si tu veux de l'aide soit pro, pour moi ce que tu racontes pour l'instant c'est bullshit, je te rappele que tu peux potentielement parler a des gens qui ne sont pas trop mauvais en network programming..., tu sembles avoir un grave probleme de comprehension de la relation client serveur qui n'est pas du p2p...
 
Je sais qu'une relation client serveur n'est pas du p2p mais je suis dans le "network programming" depuis peu de temps bref voici un exemple de code après avoir créer mon socket :
Bloc de code:
[socketT connectToHostName:@"XXX.XXX.XXX.XXX" port:XXX];
    NSMutableData *reponse = [NSMutableData data];
    while ([socketT readData:reponse] <= 0) {
        
    }
    NSString *receiveData = [[NSString alloc] initWithData:reponse encoding:NSUTF8StringEncoding];
    NSLog(@"Reçu : %@",receiveData);

Comme sa j'arrive à recevoir un message mais si jamais je devais en recevoir plusieurs là je plante j'ai essayer comme sa :
Bloc de code:
[socketT connectToHostName:@"XXX.XXX.XXX.XXX" port:XXX];
    NSMutableData *reponse = [NSMutableData data];
    while ([socketT readData:reponse] <= 0) {
        
    }
    NSString *receiveData = [[NSString alloc] initWithData:reponse encoding:NSUTF8StringEncoding];
    NSLog(@"Reçu : %@",receiveData);
 NSMutableData *reponse2 = [NSMutableData data];
     while ([socketT readData:reponse2] <= 0) {
         
     }
     NSString *receiveData2 = [[NSString alloc] initWithData:reponse2 encoding:NSUTF8StringEncoding];
     NSLog(@"Reçu : %@",receiveData);
Mais cela ne me permet pas de recevoir le second message pourtant si j'utilise un sniffeur de packet j'ai bien reçu 2 messages mais mon programme ne l'a pas detecter.
(Je précise que mon code est un exemple donc pas de gestion de mémoire et tout sa...)
 
ok :) t'es pas en language de script welcome dans le multi-thread et le concurrent :p, va falloir que tu apprenes les conceptes de blocking/non-blocking pour les lectures/ecritures, je te conseillerais de t'orienter vers CFSocketStream ecetera qui est un vraie wrapper aux BSD sockets sur OSX, ton framework c'est un peu play-mobile du genre: je viens de sortir de mon CAP programmeur
 
;) (J'ai 15 ans et je programme très bien dans tous ce qui ne touche pas au network)
Je vais me renseigner un peu plus comme tu me la conseiller merci d'avoir pris le temps de me répondre.:up:

Bye
 
;) (J'ai 15 ans et je programme très bien dans tous ce qui ne touche pas au network)
Je vais me renseigner un peu plus comme tu me la conseiller merci d'avoir pris le temps de me répondre.:up:

Bye

un conseil pour apprendre la prog-userspace-network rien ne vaut la manipulation des syscalls via la libC, (hop un tour dans mon bordel), avant de toucher a l'obj-c il faut etre comfortable avec son C
 

un conseil pour apprendre la prog-userspace-network rien ne vaut la manipulation des syscalls via la libC, (hop un tour dans mon bordel), avant de toucher a l'obj-c il faut etre comfortable avec son C

J'ai étudier NSStream je la trouve pas mal. Avec sa marche bien puis avec le temps je progresse de plus en plus (j'ai encore du temps devant moi :siffle: je suis juste en 1ere S).
Et j'adore ton dépotoir :up:

Merci beaucoup de l'aide que tu m'as apporté.