iOS Socket 通讯

Socket 是在应用层和传输层之间的一个抽象层,用于进程之间的通信。(鉴于网上有很多科普,这里就大概介绍下,然后主要还是介绍怎么用代码建立起连接)

Socket在客户端涉及到的操作主要有:1.创建Socket ->2.连接(connect)->3.通讯消息(send发消息,代理接收消息)->4.关闭(close).

socket在TCP/IP网络结构中的位置:
1334044170_5136.jpg
可以看出 Socket是处于传输层和应用层中间的一层抽象,主要提供网络之间主机进程的通讯。而为了能使网络主机进程之间能够通讯和识别不同的进程,就需要(ip+协议+端口号)来标识。
JTSocket是我根据Socket通讯建立和断开流程的一个封装,主要是帮助想了解Socket的人对Socket通讯的建立有个直观的了解。):https://github.com/guangzhouxia/JTSocket

使用方法:

0.导入头文件

#import "JTSocketHeader.h"

1.初始化

  NSString * host = @"192.168.2.78"; //可以用SocketTool创建,http://www.cocoachina.com/bbs/read.php?tid=141721
  NSNumber * port = @45532; //可以用SocketTool创建(创建的时候只要填端口号,ip会自动生成本机ip,推荐端口号大于6000)
  
  self.mySockt = [[JTSocket alloc] initWithHost:host port:port];
  if (self.mySockt == nil) {
      NSLog(@"init Socket -- fail");
  }
  self.mySockt.delegate = self;

2.连接

[self.mySockt connect]

3.发送消息与监听

//发送
[self.mySockt sendMessage:msgStr];
//监听代理
- (void)socket:(JTMessage *)message handleEvent:(JTSocketEvent)eventCode;

4.关闭连接

[self.mySockt close];

测试:推荐使用SocketTool,可以在本机模拟进行Socket通讯(http://www.cocoachina.com/bbs/read.php?tid=141721),

display.png

参考链接:http://blog.csdn.net/hguisu/article/details/7445768/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、网络各个协议:TCP/IP、SOCKET、HTTP等 网络七层由下往上分别为物理层、数据链路层、网络层、传输层...
    杯水救车薪阅读 2,311评论 0 17
  • 第一部分、概念的理解1、什么是Socket?Socket又称之为“套接字”,是系统提供的用于网络通信的方法。它的实...
    Hevin_Chen阅读 2,505评论 0 5
  • 一: 网络各个协议:TCP/IP、SOCKET、HTTP 网络七层由下往上分别为物理层、数据链路层、网络层、传输层...
    iYeso阅读 1,456评论 0 13
  • 有多久没有早晨一睁开眼睛觉得是新的一天了? ----真的记不得了。 这段时间好像一直都在消化自己工作上的事情,很久...
    Miss仙人掌阅读 397评论 1 2
  • 智库捐款1元,支持到更多人接触金刚智慧! 腾讯公益捐款10元,支持到需要帮助的白血病孩子! 业力伙伴群发红包1元,...
    我不叫许仲斌阅读 94评论 0 1