作者
OneTea
关注
2016.09.19 11:33*
字数 0
阅读 83
喜欢 1
#import <Foundation/Foundation.h>
@class AsyncSocket;//async异步的 synchro同步
@class AsyncReadPacket;
@class AsyncWritePacket;
extern NSString *
const AsyncSocketException;
extern NSString *
const AsyncSocketErrorDomin;
enum AsyncSocketError
{
AsynsocketCFSocketError = kCFSocketError,
AsyncSocketNoError =
0,
AsyncSocketCanceledError,
AsyncSocketReadTimmeoutError,
AsyncSocketWritrTimeoutError
};
typedef enum AsyncSocketError AsyncSocketError;
@interface NSObject (AsyncSocketDelegate)//类目,虽然看上去像是代理方法,但是作者把它们写成了NSObject类的扩展方法 因此实际编程中包含该.h文件的所有类都可以直接使用这些方法
-(
void) onSocket:(AsyncSocket *)sock willDisconnectWithError:(
NSError *)err;
-(
void)onSocketDidDisconnect:(AsyncSocket *)socket;
-(
void)onSocket:(AsyncSocket *)sock didAcceptNewSocket:(AsyncSocket *)newSocket;
-(
NSRunLoop *)onSocket:(AsyncSocket *)sock wantsRunLoopForNewSocket:(AsyncSocket *)newSocket;
-(
BOOL)onSocketWillConnect:(AsyncSocket *)socket;
- (
void)onSocket:(AsyncSocket *)sock didConnectToHost:(
NSString *)host port:(
UInt16)port;
- (
void)onSocket:(AsyncSocket *)sock didReadData:(
NSData *)data withTag:(
long)tag;
- (
void)onSocket:(AsyncSocket *)sock didReadPartialDataOfLength:(
CFIndex)partialLength tag:(
long)tag;
- (
void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(
long)tag;
@end
@interface AsyncSocket : NSObject
{
CFSocketRef theSocket;
CFSocketRef theSocket6;
CFReadStreamRef theReadStream;
CFWriteStreamRef theWriteStream;
CFRunLoopSourceRef theSource;
CFRunLoopSourceRef theSource6;
CFRunLoopRef theRunLoop;
CFSocketContext theContext;
NSMutableArray *theReadqueue;
AsyncReadPacket *theCurrentRead;
NSTimer *theReadTimer;
NSMutableData *partailReadBuffer;
NSMutableArray *theWriteQueue;
AsyncWritePacket *theCurrentWrite;
NSTimer *theWriteTimer;
id theDelegate;
Byte theFlags;
long theUserData;
}
-(
id)init;
-(
id)initWithDelegate:(
id)delegate;
-(
id)initWithDelegate:(
id)delegate userData:(
long)userData;
-(
NSString *)description;
- (
id)delegate;
- (
BOOL)canSafelySetDelegate;
- (
void)setDelegate:(
id)delegate;
-(
long)userData;
-(
void)setUserData:(
long)userData;
-(
CFSocketRef)getCFSocket;
-(
CFReadStreamRef)getCFReadStream;
-(
CFWriteStreamRef)getCFWriteStream;
- (
BOOL)acceptOnPort:(
UInt16)port error:(
NSError **)errPtr;
- (
BOOL)acceptOnAddress:(
NSString *)hostaddr port:(
UInt16)port error:(
NSError **)errPtr;
- (
BOOL)connectToHost:(
NSString *)hostname onPort:(
UInt16)port error:(
NSError **)errPtr;
- (
BOOL)connectToAddress:(
NSData *)remoteAddr error:(
NSError **)errPtr;
-(
void)disconnect;
-(
void)disconnectAfterWriting;
-(
BOOL)isConnected;
-(
NSString *)connectedHost;
-(
UInt16)connectedPort;
-(
BOOL)isIPv4;
-(
BOOL)isIPv6;
-(
void)readDataToLength:(
CFIndex)length withTimeout:(
NSTimeInterval)timeout tag:(
long)tag;
-(
void)readDataToData:(
NSData *)data withTimeout:(
NSTimeInterval)timeout tag:(
long)tag;
-(
void)readDataWithTimeout:(
NSTimeInterval)timeout tag:(
long)tag;
-(
void)writeData:(
NSData *)data withTimeout:(
NSTimeInterval)timeout tag:(
long)tag;
-(
float)progressOfReadReturningTag:(
long *)tag bytesDone:(
CFIndex *)done total:(
CFIndex *)total;
-(
float)progressOfWriteReturningTag:(
long *)tag bytesDone:(
CFIndex *)done total:(
CFIndex *)total;
- (
NSData *)unreadData;
+(
NSData *)unreadData;
+(
NSData *)CRLFData;
+(
NSData *)LFData;
+(
NSData *)ZeroData;
@end
转载请注明原文地址: https://ju.6miu.com/read-20100.html