Socket

本文详细介绍了socket概念及其在iOS开发中的应用,包括服务器端监听与客户端流程,以及在iOS中的三种实现方式:NSStream、CFStream与BSD Socket,并对比了它们的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

socket

  概念:

     英文原义是“孔”或“插座”。socket非常类似于电话插座。电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于socket号。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相当于对方有一个固定的socket。双方通话的过程,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。只要通信设施能提供足够的通信能力,它就满足通信。Socket 接口是访问 Internet 使用得最广泛的方法。

在ios中的使用:

  服务器端监听某个端口是否有连接请求。服务器端程序处于堵塞状态,直到客户端向服务器端发出连接请求,服务器端接受请求程序才能向下运行。一旦连接建立起来,通过Socket可以获得输入输出流对象。借助于输入输出流对象就可以实现与客户端的通讯,最后不要忘记关闭Socket和释放一些资源(包括:关闭输入输出流)。

  客户端流程是先指定要通讯的服务器IP地址、端口和采用的传输协议(TCP或UDP),向服务器发出连接请求,服务器有应答请求之后,就会建立连接。之后与服务器端是一样的了。

  在iOS中,客户端Socket编程可以使用的技术有三种:

  

  1 使用NSStream。面向Objective-C语言的实现,由苹果提供的Foundation框架提供的API;

  2 使用CFStream。面向C语言的实现,由苹果提供的Core Foundation框架提供的API;

  3.BSD Socket。也叫伯克利套接字(Berkeley Socket),是Unix平台下广泛使用的Socket编程。它是面向C语言实现 的,完全使用C编写,使用起来比较麻烦。

  

  在iOS中,服务器端Socket编程可以使用技术有二种:

  1 使用CFStream。面向C语言的实现,由苹果提供的Core Foundation框架提供的API;

  2 BSD Socket。也叫伯克利套接字(Berkeley Socket),是Unix平台下广泛使用的Socket编程。它是面向C语言实 现的,完全使用C编写的,使用起来比较麻烦

 

转载于:https://www.cnblogs.com/moxingqiang/p/4824895.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值