网站建设资讯

NEWS

网站建设资讯

IOS中Socket编程步骤-创新互联

这篇文章给大家分享的是IOS中Socket编程步骤,相信大部分人都还没学会这个技能,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。

成都创新互联公司从2013年成立,是专业互联网技术服务公司,拥有项目网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元解放做网站,已为上家服务,为解放各地企业和个人服务,联系电话:13518219792

一.在项目引入ASyncSocket库

  1.下载ASyncSocket库源码

  2.把ASyncSocket库源码加入项目:只需要增加RunLoop目录中的AsyncSocket.h、AsyncSocket.m、AsyncUdpSocket.h和AsyncUdpSocket.m四个文件。

  3.在项目增加CFNetwork框架

     在Framework目录右健,选择Add-->Existing Files...   , 选择 CFNetwork.framework

二.TCP客户端

  1. 在controller头文件定义AsyncSocket对象

#import

#import "AsyncSocket.h"

@interface HelloiPhoneViewController : UIViewController {

   UITextField   * textField;

   AsyncSocket * asyncSocket;

}

@property (retain, nonatomic) IBOutlet UITextField *textField;

- (IBAction) buttonPressed: (id)sender;

- (IBAction) textFieldDoneEditing: (id)sender;

@end

  2.在需要联接地方使用connectToHost联接服务器

  其中initWithDelegate的参数中self是必须。这个对象指针中的各个Socket响应的函数将被ASyncSocket所调用.

   asyncSocket = [[AsyncSocket alloc] initWithDelegate:self];

   NSError *err = nil;

   if(![asyncSocket connectToHost:host on:port error:&err])

   {

     NSLog(@"Error: %@", err);

   }

3.增加Socket响应事件

   因为initWithDelegate把将当前对象传递进去,这样只要在当前对象方法实现相应方法.

4.关于NSData对象

   无论SOCKET收发都采用NSData对象.它的定义是 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/Reference/Reference.html

   NSData主要是带一个(id)data指向的数据空间和长度 length.

   NSString 转换成NSData 对象

    NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding];

  NSData 转换成NSString对象

  NSData * data;

  NSString *result = [[NSString alloc] initWithData:data  encoding:NSUTF8StringEncoding];

4.发送数据

   AsyncSocket  writeData   方法来发送数据,它有如下定义

   - (void)writeData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag;

以下是一个实例语句.

   NSData* aData= [@"test data" dataUsingEncoding: NSUTF8StringEncoding];

   [sock writeData:aData withTimeout:-1 tag:1];

 在onSocket重载函数,有如定义采用是专门用来处理SOCKET的发送数据的:

   -(void)onSocket(AsyncSocket *)sock didWriteDataWithTag:(long)tag

{

    NSLog(@"thread(%),onSocket:%p didWriteDataWithTag:%d",[[NSThread currentThread] name],

   sock,tag);

}

5.接收Socket数据.

   在onSocket重载函数,有如定义采用是专门用来处理SOCKET的接收数据的.

   -(void) onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag

在中间将其转换成NSString进行显示.

   NSString* aStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

   NSLog(@"===%@",aStr);

   [aStr release];

关于IOS中Socket编程步骤就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:IOS中Socket编程步骤-创新互联
网页网址:http://njwzjz.com/article/hsodo.html