用 AsyncSocket
的 writeData
方法发送数据,
代码
[ _asyncSocket writeData:[@"我是IOS客户端" dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:1];
只是一直放在内存中,没有发送出去,关掉链接之后才发送所有的数据,不可以写入一条就发一条吗?
实例化一次就可以,当然可以一条一条发. 如果服务没收到的话应该是发送的字符串问题,你尝试加\n
试试,大部分服务器都是以这个符号判断是否为一条消息(具体要看后台怎么做的)
#pragma mark - 连接到服务器
- (void)connectToHost
{
if (!_socket) {
_socket = [[AsyncSocket alloc]initWithDelegate:self];
[_socket connectToHost:SERVER_PATH_SOCKET onPort:50000 withTimeout:5 error:nil];
}
}
#pragma mark - 断开连接
- (void)socketDisconnect
{
//断开连接时候一定要清空socket
[_socket disconnect];
_socket = nil;
}
#pragma mark - 返回数据
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
NSLog(@"data is %@", data);//返回的是二进制
}