2010-09-15 4 views
0

Je me connecte à une prise de serveur en utilisant le code suivant:AsyncSocket writeData question

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    asyncSocket = [[AsyncSocket alloc] initWithDelegate:self]; 

    NSError *err = nil; 
    //[asyncSocket connectToHost:@"192.168.0.200" onPort:8000 error:&err]; 
    if(![asyncSocket connectToHost:@"192.168.0.78" onPort:2055 error:&err]) 
    { 
     [asyncSocket connectToHost:@"192.168.0.78" onPort:2055 error:&err]; 
    } 
} 

Puis, le délégué didConnectToHost, je suis en train d'écrire quelques textes:

- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port 
{ 
    NSLog(@"onSocket:%p didConnectToHost:%@ port:%hu", sock, host, port); 

    for(int i=0;i<5;i++){ 
     NSString* str= [NSString stringWithFormat: @"Hello Server: %d",i]; 
     NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding]; 
     [sock writeData:data withTimeout:-1 tag:1]; 

    } 
} 

Lorsque je me connecte à la prise , le message connecté est affiché sur la console côté serveur. Côté serveur, les données sont lues à partir du flux avec streamReader. Nous utilisons la classe TCPListener du côté serveur (C# .Net). Mais lorsque j'écris des données à partir du socket côté client et que j'essaie de lire les données envoyées par le client, l'objet streamReader sur le serveur reçoit des données vides. Lorsque nous quittons l'application cliente, l'objet streamReader côté serveur reçoit les données envoyées par le client.

Nous devons lire les données côté serveur immédiatement après avoir écrit du côté client plutôt que de quitter l'application.

Quelqu'un peut-il m'aider à résoudre ce problème?

+0

Pourquoi essayez-vous instantanément une nouvelle connexion à la même adresse IP/port si elle échoue la première temps? Sûrement si cela a échoué, quelque chose ne va pas et une nouvelle tentative échouera presque certainement quand réessayé ceci rapidement? – Jasarien

Répondre

1

il vous suffit de terminer la chaîne avec « \ n » je sais que si l'espoir trop tard, il aide quelqu'un d'autre