- TCP based Socket (also can use AsynSocket lib)
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);
}