Socket in iOS

本文介绍如何使用TCP和UDP进行套接字编程。对于TCP编程,文章提供了基于NSInputStream和NSOutputStream的连接和发送消息的方法。对于UDP编程,则展示了如何通过AsyncUdpSocket库初始化UDP套接字并发送数据。

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

  • TCP based Socket (also can use AsynSocket lib)
      NSInputStream *inputStream;
      NSOutputStream *outputStream;

   

- (void)connect

{

    CFReadStreamRef readStream;

    CFWriteStreamRef writeStream;

    

    CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)(@"127.0.0.1"), 80, &readStream, &writeStream);

    inputStream = (__bridge NSInputStream *)readStream;

    outputStream = (__bridge NSOutputStream *)writeStream;

    

    [inputStream setDelegate:self];

    [outputStream setDelegate:self];

    

    [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

    [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

    

    [inputStream open];

    [outputStream open];

}


- (void)sendMessage:(NSString *)message

{

NSData *data = [[NSData alloc] initWithData:[message dataUsingEncoding:NSASCIIStringEncoding]];

[outputStream write:[data bytes] maxLength:[data length]];

}

  • UDP based socket (use AsyncUdpSocket lib)
    • Copy AsyncUdpSocket.h and AsyncUdpSocket.m to your project.
    • Conform to AsyncUdpSocketDelegate for example, 
      • @interface XXXViewController : UIViewController <AsyncUdpSocketDelegate>
    • - (void)initUdpSocket

      {

          asyncUdpSocket = [[AsyncUdpSocket alloc]initWithDelegate:self];

      }


      - (void)sendMessage:(NSString *)message

      {

          NSData *data = [[NSData alloc] initWithData:[message dataUsingEncoding:NSUTF8StringEncoding]];

          BOOL success = [asyncUdpSocket sendData:data toHost:@"127.0.0.1" port:8888 withTimeout:-1 tag:1];

          NSLog(@"send upd complete: %d", success);

      }







转载于:https://www.cnblogs.com/chuwachen/archive/2013/06/01/3911023.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值