服務端服務器
1.首先初始化一個服務端的seckot對象socket
//初始化serverSocketspa
serverSocket = [[AsyncSocket alloc] initWithDelegate:self];3d
2.監聽端口orm
//監聽端口server
//Port: 端口對象
[serverSocket acceptOnPort:6666 error:nil];get
//實現協議方法it
#pragma mark - AsyncSocketDelegatecli
//鏈接到了一個新的客戶端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];
}