- (void)viewDidLoad { //[super viewDidLoad]; [self getIPAddress:true]; if([self connectServer:HOST_IP port:HOST_PORT]==1){ } UIButton *btn=[self addButton:@"发送" withx:110 withy:130 withWidth:200 withTag:1]; [self.view addSubview:btn ]; UIButton *btn1=[self addButton:@"断开" withx:0 withy:60 withWidth:200 withTag:0]; [self.view addSubview:btn1 ]; UIButton *btn2=[self addButton:@"连接" withx:0 withy:95 withWidth:200 withTag:2]; [self.view addSubview:btn2 ]; // 监听读取 } //事件方法 - (void)handleSingleTap:(UIGestureRecognizer *)gestureRecognizer { //事件处理。 NSString *str=[NSString stringWithFormat:@"%ld",gestureRecognizer.view.tag]; NSLog(@"点击了%@",str) ; switch (gestureRecognizer.view.tag) { case 0: [client disconnect]; break; case 1: [self sendMsg]; break; case 2: [self connectServer:HOST_IP port:HOST_PORT]; break; case 3: break; default: break; } } // Override to allow orientations other than the default portrait orientation. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES; } - (void)viewDidUnload { client = nil; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (int)connectServer:(NSString *)hostIP port:(int)hostPort { if (client == nil) { client = [[AsyncSocket alloc] initWithDelegate:self]; NSError *err = nil; //192.168.110.128 if (![client connectToHost:hostIP onPort:hostPort error:&err]) { NSLog(@"%@ %@", [err code], [err localizedDescription]); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[@"Connection failed to host " stringByAppendingString:hostIP] message:[[[NSString alloc]initWithFormat:@"%@",[err code]] stringByAppendingString:[err localizedDescription]] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; // [alert release]; //client = nil; return SRV_CONNECT_FAIL; } else { NSLog(@"Conectou!"); return SRV_CONNECT_SUC; } } else { [client readDataWithTimeout:-1 tag:0]; return SRV_CONNECTED; } } - (void)reConnect { int stat = [self connectServer:HOST_IP port:HOST_PORT]; switch (stat) { case SRV_CONNECT_SUC:[self showMessage:@"connect success"];break; case SRV_CONNECTED:[self showMessage:@"It's connected,don't agian"];break; default:break; } } - (void)sendMsg { // NSString *inputMsgStr = self.inputMsg.text; NSString * content = @"ok"; NSLog(@"%@",content); NSData *data = [content dataUsingEncoding:NSISOLatin1StringEncoding]; [client writeData:data withTimeout:-1 tag:0]; //[data release]; //[content release]; //[inputMsgStr release]; //继续监听读取 [client readDataWithTimeout:-1 tag:0]; } #pragma mark - #pragma mark close Keyboard - (void)textFieldDoneEditing:(id)sender { [sender resignFirstResponder]; } - (void)backgroundTouch:(id)sender { [inputMsg resignFirstResponder]; } #pragma mark socket uitl - (void)showMessage:(NSString *)msg { UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Alert!" message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; // [alert release]; } #pragma mark socket delegate - (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port { [client readDataWithTimeout:-1 tag:0]; NSLog(@"连接成功"); } - (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err { NSLog(@"Error"); } - (void)onSocketDidDisconnect:(AsyncSocket *)sock { NSString *msg = @"Sorry this connect is failure"; [self showMessage:msg]; // [msg release]; client = nil; NSLog(@"断开"); } - (void)onSocketDidSecure:(AsyncSocket *)sock { } - (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag { NSString* aStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"Hava received datas is :%@",aStr); // self.outputMsg.text = aStr; // [aStr release]; [client readDataWithTimeout:-1 tag:0]; }
tcpdump抓下包,看调用发送方法时发送没,如果没有,就找原因,是不是缓存了,并没有及时发送
29,028
社区成员
12,466
社区内容
加载中
试试用AI创作助手写篇文章吧