//联系人:石虎 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$ telnet 220.181.111.18880
Trying 220.181.111.188...
Connected to 220.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 查看所有开放的端口查看连接状态
谢谢!!!