服务端
1.首先初始化一个服务端的seckot对象
//初始化serverSocket
serverSocket = [[AsyncSocket alloc] initWithDelegate:self];
2.监听端口
//监听端口
//Port: 端口
[serverSocket acceptOnPort:6666 error:nil];
//实现协议方法
#pragma mark - AsyncSocketDelegate
//连接到了一个新的客户端socket
//newSocket:客户端的socket对象
- (void)onSocket:(AsyncSocket *)sock didAcceptNewSocket:(AsyncSocket *)newSocket
{
//到这里就说明已经建立了可靠的连接,已经完成了"三次握手"
//下面我们就可以发送数据了
//保存连接的客户端socket对象
clientSocket = newSocket;
//发送数据
NSString *message = @"客户端 你好!";
NSData *data = [message dataUsingEncoding:NSUTF8StringEncoding];
//发送数据给客户端newSocket
[newSocket writeData:data withTimeout:-1 tag:100];
//监听接收客户端发送过来的数据(只监听一次)
[newSocket readDataWithTimeout:-1 tag:100];
}
//已经发送数据成功
- (void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag
{
NSLog(@"发送数据成功!");
}
//已经接收到数据
-(void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
//将二进制NSData转换成NSString
NSString *message = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"message:%@", message);
//继续监听下一次数据
[clientSocket readDataWithTimeout:-1 tag:111];
}
客户端:
1.初始化客户端的socket
2.连接服务器,Host —服务端IP地址 , Port ——-端口,与服务端要一致
[clientSocket connectToHost:@"10.20.155.167" onPort:6666 error:nil];
3.监听服务器发过来的数据
[clientSocket readDataWithTimeout:-1 tag:100]
//实现协议方法
#pragma mark - AsyncSocketDelegete
//连接服务器成功
//sock:客户端的socket对象
//host:服务器的IP地址
//port:端口
-(void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port
{
//已经确保了可靠的连接, 已经完成了"三次握手"
//下面可以发送数据了
//发送数据
NSString *message = @"服务端, 你好!";
NSData *data = [message dataUsingEncoding:NSUTF8StringEncoding];
//发送给服务端
[sock writeData:data withTimeout:-1 tag:100];
}
//接收到服务端的数据
-(void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
NSString *message = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"message:%@", message);
//继续监听服务端发送过来的数据
[clientSocket readDataWithTimeout:-1 tag:100];
}