AsyncSocket writeData问题

时间:2010-09-15 15:44:33

标签: c# iphone

我使用以下代码连接到服务器套接字:

- (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];
    }
}

然后在didConnectToHost委托中,我写的文字很少:

- (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];

    }
}

当我连接到套接字时,连接的消息显示在服务器端控制台上。在服务器端,使用streamReader从流中读取数据。我们在服务器端使用TCPListener类(c#.Net)。但是当我从客户端套接字写入数据,并尝试读取客户端发送的数据时,服务器上的streamReader对象正在获取空数据。当我们退出客户端应用程序时,服务器端的streamReader对象将获取客户端发送的数据。

我们需要在从客户端写入后立即从服务器端读取数据,而不是退出应用程序。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

你只需要用'\ n'来完成字符串 我知道它太晚了所以希望它可以帮助别人