设为首页 收藏本站
查看: 2133|回复: 0

[经验分享] socket;ios客户端与php服务端交互(补充html5+python服务端+ios客户端)

[复制链接]

尚未签到

发表于 2015-4-28 07:29:59 | 显示全部楼层 |阅读模式
  这几天工程少了静下心来玩玩WebSocket,发现还是挺有意思的,目前只是做做测试,有待研究更深入的东西
  当然ios我引入了AsyncSocket库作为我的socket库,有兴趣的朋友可以谷歌一下这个东西,挺实用的
  (补充)近期还玩了下基于python,html5和ios端的WebSocket,颇有感悟,大家有兴趣可以去谷歌下RockSocket,简单易用而且方便,是个很好的HTML5和ios端相互交流的socket框架。
  php sever端:





  ios 客户端.h:



//
//  RootViewController.h
//  myFirstSocket
//
//  Created by Jahnny on 13-3-22.
//  Copyright (c) 2013年 ownerblood. All rights reserved.
//
#import
@interface RootViewController : UIViewController
{
AsyncSocket     *_asyncSocket;
}
@property (retain, nonatomic) IBOutlet UITextField *submitText;
@end

  
  ios 客户端.m:



//
//  RootViewController.m
//  myFirstSocket
//
//  Created by Jahnny on 13-3-22.
//  Copyright (c) 2013年 ownerblood. All rights reserved.
//
#import "RootViewController.h"
@interface RootViewController ()
@end
@implementation RootViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (IBAction)pressTest:(id)sender {
if (!_asyncSocket)
{
[_asyncSocket release];
_asyncSocket=nil;
}
_asyncSocket = [[AsyncSocket alloc]initWithDelegate:self];
NSString *host = @"127.0.0.1";
int nPort = 9196;
NSError *error = nil;
//[_asyncSocket connectToHost:host onPort:nPort error:&error];
[_asyncSocket connectToHost:host onPort:nPort withTimeout:2 error:&error];
if (error!=nil) {
NSLog(@"连接失败:%@",error);
}else{
NSLog(@"连接成功");
}
}
- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err
{
NSLog(@"Info___willDisconnectWithError");
//[self logInfo:FORMAT(@"Client Disconnected: %@:%hu", [sock connectedHost], [sock connectedPort])];
if (err) {
NSLog(@"错误报告:%@",err);
}else{
NSLog(@"连接工作正常");
}
[_asyncSocket release];
_asyncSocket = nil;
}
- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port
{
NSLog(@"Info___didConnectToHost");
[sock readDataWithTimeout:-1 tag:0];
if (_submitText.text.length>0) {
[sock writeData:[_submitText.text dataUsingEncoding:NSUTF8StringEncoding] withTimeout:3 tag:1];
}else{
[sock writeData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com"]] withTimeout:3 tag:1];
}
}
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
NSLog(@"Info___didReadData");
NSData *strData = [data subdataWithRange:NSMakeRange(0, [data length])];
NSString *msg = [[[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding] autorelease];
if(msg)
{
NSLog(@"%@",msg);
}
else
{
NSLog(@"错误");
}
[sock readDataWithTimeout:-1 tag:0];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)dealloc {
[_submitText release];
[super dealloc];
}
@end

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-61322-1-1.html 上篇帖子: python 如何运行程序 下篇帖子: Python的global语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表