Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
30 ashish 1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one
3
 * or more contributor license agreements. See the NOTICE file
4
 * distributed with this work for additional information
5
 * regarding copyright ownership. The ASF licenses this file
6
 * to you under the Apache License, Version 2.0 (the
7
 * "License"); you may not use this file except in compliance
8
 * with the License. You may obtain a copy of the License at
9
 *
10
 *   http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing,
13
 * software distributed under the License is distributed on an
14
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
 * KIND, either express or implied. See the License for the
16
 * specific language governing permissions and limitations
17
 * under the License.
18
 */
19
#import "TSocketClient.h"
20
#import <CFNetwork/CFSocketStream.h>
21
 
22
@implementation TSocketClient
23
 
24
- (id) initWithHostname: (NSString *) hostname
25
                   port: (int) port
26
{
27
	NSInputStream * inputStream = NULL;
28
	NSOutputStream * outputStream = NULL;
29
	CFReadStreamRef readStream = NULL;
30
	CFWriteStreamRef writeStream = NULL;
31
	CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, (CFStringRef)hostname, port, &readStream, &writeStream);
32
	if (readStream && writeStream) {
33
		CFReadStreamSetProperty(readStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanTrue);
34
		CFWriteStreamSetProperty(writeStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanTrue);
35
 
36
		inputStream = (NSInputStream *)readStream;
37
		[inputStream retain];
38
		[inputStream setDelegate:self];
39
		[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
40
		[inputStream open];
41
 
42
		outputStream = (NSOutputStream *)writeStream;
43
		[outputStream retain];
44
		[outputStream setDelegate:self];
45
		[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
46
		[outputStream open];
47
	}
48
 
49
	self = [super initWithInputStream: inputStream outputStream: outputStream];
50
 
51
	return self;
52
}
53
 
54
 
55
@end
56
 
57
 
58