Socket in iOS

  • 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);

      }







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值