我使用以下代码连接到服务器套接字:
- (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对象将获取客户端发送的数据。
我们需要在从客户端写入数据后立即在服务器端读取数据,而不是退出应用程序。
有人能帮我解决这个问题吗?
发布于 2011-08-30 20:50:15
你只需要用'\n‘结束字符串,我知道太晚了,所以希望它能帮助其他人
https://stackoverflow.com/questions/3719373
复制相似问题