我使用以下代码连接到服务器套接字:
- (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对象将获取客户端发送的数据。
我们需要在从客户端写入后立即从服务器端读取数据,而不是退出应用程序。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
你只需要用'\ n'来完成字符串 我知道它太晚了所以希望它可以帮助别人