iOS Socket开发总结~笔记

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

一、OSI、TCP/IP参考模型

IOS参考模型七层的作用

同一节点相邻层次间通过接口通信

各节点相同层次通过协议实现

TCP/IP参考模型简化

二、网络通讯要素

使用端口号的范围

ping的回环地址(网上没问题)、Ping IP(网络没问题),域名、DNS

本地域名缓存/etc/hosts (画图演示DNS hosts)

TCP/UDP

URL ftp:http

演示telnet解决工作中常见问题

iVincent:~ Vincent_Guo$ telnet220.181.111.18880

Trying220.181.111.188...

Connected to220.181.111.188.

Escape character is'^]'.

GET /more/ HTTP/1.1

host:www.baidu.com

三、socket聊天

启动聊天服务器Python chatserver.py

键盘动画[self.view layoutIfNeeded];

连接到主机,分配输入输出流空间

建立长连接CFStreamCreatePairWithSocketToHost

将语言的输入输出流转成OC对象

设置代表监听输入输出流的状态

添加到主运行循环,否理代理不工作

[_inputStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];

打开输入输出流

登录发送

NSString *loginStr = [NSString stringWithFormat:@"iam:zhangsan"];

NSData *data = [loginStr dataUsingEncoding:NSUTF8StringEncoding];

[_outputStream write:data.bytes maxLength:data.length];

数据读取

//建立个缓冲区来保存读取到的数据

uint8_t buffer[1024];

//返回实际读取的数据长度

NSInteger len = [_inputStream read:buffer maxLength:sizeof(buffer

//有数据

if(len >0) {

NSString *reveiver =  [[NSString alloc] initWithBytes:buffer length:len encoding:NSUTF8StringEncoding];

}

断开连接要关闭输入输出流并移除主运行循环

回顾

netstat -an -p tcp查看所有开放的端口查看连接状态

谢谢!!!

你可能感兴趣的:(iOS Socket开发总结~笔记)