
C && OC && iOS
leinchu
多做,快做,少废话
展开
-
c语言ip掩码转换成地址范围
#include <stdio.h>#include <stdlib.h>#include <linux/types.h>#include <sys/types.h>#include <strings.h>#include <arpa/inet.h>char* longToIp(char* buf, int IPAddr){//ip2long sprintf(buf, "%d.%d.%d.%d", (0X000.原创 2020-07-22 16:32:28 · 978 阅读 · 0 评论 -
多进程Traceroute小工具(源码)
#include <stdio.h>#include <malloc.h>#include <string.h>#include <memory.h>#include <malloc.h>#include <time.h>#include <math.h>#include <stdarg.h&...原创 2019-12-02 11:46:18 · 382 阅读 · 0 评论 -
C++实现上传下载文件,支持windows及iOS、Android
.h文件#pragma once#include "cocos2d.h"#ifdef WIN32//#include //#include #include #include #else#include #include #include #include #include #include #define SOCKET int#define SOC原创 2017-03-17 17:14:43 · 5170 阅读 · 2 评论 -
Epoll 的一个巨坑!
多年前就用过epoll写socket服务,最终写出来的东西不稳定,即便用了libevent也同样会出现运行 不定时间之后出现能连接,但是服务器端毫无反应,客户端也不显示连接上,也不出现连接失败的一种情况。今天由于需要想写个socket转发服务,再次拿起当年写的代码。当一个人连接之后,我立即开一个线程,链接到转发服务器,然后把跟服务器的连接fd,和客户端的fd保存到一个str原创 2016-08-16 14:18:15 · 1628 阅读 · 0 评论 -
C++ 类的静态方法作为回调函数传给另外一个类的方法,并调用之
被调用的方法:static cocos2d::Label* label;void HelloWorld::showText(std::string txt) { label->setString(txt);}把上面的方法传递给另外一个类CGameSocket 的一个方法CGameSocket gs; void(*func)(std::string); func =原创 2016-07-01 17:20:40 · 1953 阅读 · 0 评论 -
Cocos2d-x 3.11.1 Android Windows 10 加载csd
cocos2d-x 3.11.1放在d:\cocos2d安装好python2.7,注意,cocos2d不支持python3(http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/getting-started/setting-up原创 2016-06-29 12:33:10 · 1353 阅读 · 0 评论 -
setsockopt 设置 SO_LINGER 在Android socket编程中的一个问题:
setsockopt 设置 SO_LINGER 目的是为了防止Timewait。 -----------------------------------------------------------------SO_LINGER选项用来改变此缺省设置。使用如下结构:struct linger { int l_onoff; /* 0 = off, nozero = on原创 2016-03-16 19:30:00 · 1467 阅读 · 0 评论 -
iOS stringByEvaluatingJavaScriptFromString的参数长度限制
我不是十分确定传给stringByEvaluatingJavaScriptFromString的javascript脚本长度有限制请看我下面代码:int l = 166235; data = [data substringToIndex:l]; while(YES){原创 2015-04-07 18:16:33 · 3594 阅读 · 0 评论 -
Admob(6.12.x)符号未定义错误的解决方法(IOS)
在升级Admob的SDK版本到6.12.x时,按照官方文档操作(https://developers.google.com/mobile-ads-sdk/docs/#ios),添加如下framework:StoreKitAudioToolboxMessageUISystemConfigurationCoreGraphicsAdSupport之后转载 2015-03-03 18:52:04 · 531 阅读 · 0 评论 -
The bundle does not contain an app icon for iPhone / iPod Touch of exactly '57x57' pixels
遇到这个问题问题,搜索了一圈要么不知道,要么喊改deploymenet target,最后我是在项目属性-info-icon files(ios5)-下面添加了一个icon,然后弄了个icon.png 57x57的,加到项目里面。就ok了。原创 2015-01-22 10:44:21 · 2236 阅读 · 0 评论 -
iOS Android图标生成器PHP
<?php//修改为你想要的大小$sizes = array(40,57,58,60,72,76,80,120,152);//原始文件名(512X512)$filename = 'iTunesArtwork.png';list($width, $height) = getimagesize($filename);foreach($sizes as $size){ $new_wid原创 2014-12-02 10:40:23 · 976 阅读 · 0 评论 -
C pthread_mutex_lock的效率
大约是2010年吧,那个时候我开始写c,没基础。当时用到了锁,我记得pthread_mutex_lock有的时候要1秒多钟,我当时有没有确定是不是因为有线程锁定了,所以才造成的,就得出结论,pthread_mutex_lock效率极低!后来我基本能无锁就无锁,但这确实很难,不是任何时候都有办法做到。我今天又遇到无法无锁的,自己就又写了套数字锁:/** * 高低优先级双线程双数字锁,简称双数锁 ...原创 2018-04-03 16:07:37 · 2496 阅读 · 0 评论 -
Linux C 语言密码输入、支持backspace删除 (curses)
WINDOW *win = initscr();//必须有,会新建一个屏幕,如果没这句下面noecho会段错误,还不知道怎么实现在当前屏幕输入noecho();raw();printf("Enter decode key:");fflush(stdout);char pwds[33];int i;for(i=0;i<32;i++){ pwds[i] = getchar()...原创 2018-04-23 14:41:53 · 1003 阅读 · 0 评论 -
Linux 动态库共享主程序的全局变量!
我最开始开发时,所有代码在一块儿;后来我想把一部分基础的函数分离出来,做成so;但因为没有一开始就分离,结果:想分离的函数用了不少全局变量;编译so没问题,主程序加载so就出问题了,报变量符号找不到。各种搜索无果,最后发现:“在linux上,链接主程序的时候,使用参数-Wl,--export-dynamic在AIX上,使用'deferred imports' 并且 enable 'runtime ...原创 2018-04-20 16:46:36 · 3420 阅读 · 0 评论 -
Udp 服务的 sendto, recvfrom的参数(CentOS)
两个函数的定义: ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, str...原创 2019-02-18 17:55:58 · 1442 阅读 · 0 评论 -
指针相减
在今天以前我一直以为指针相减结果为他们的内存地址差,但其实不是:#include <stdio.h>#include <stdlib.h>#include <dlfcn.h>#include <string.h>typedef struct{ uint a; uint b;} as;void mai...原创 2019-01-25 17:34:55 · 197 阅读 · 0 评论 -
C 语言结构体长度的对齐(CentOS 6.3 64位)
网上搜索了一些文章来看,难懂,难理解,而且与我的测试并不相符合我用下面的js生成c代码var strstruct = '';var strcall = '';var strx = '';var csize = 0;var ts = '';for(i=0;i<64;i++){ //第2、3、4测试用到 if(i%3==1){ strx += " uint i"+i...原创 2019-01-25 16:02:25 · 313 阅读 · 0 评论 -
写内存速度跟块大小(每次写入多少)的关系
#include <stdlib.h>#include <string.h>#include <stdio.h>#include <pthread.h>#define TIME_DIFF(ts,te) ((te.tv_sec-ts.tv_sec)+(te.tv_usec-ts.tv_usec)*1.0/1000000)int main(i...原创 2019-01-09 15:56:29 · 1028 阅读 · 0 评论 -
极限速度对比测试:memcpy & =,long = (long*)int & long = (long*)long,15+15 & 123456789+123456789
#include <stdio.h>#include <stdlib.h>#include <dlfcn.h>#include <string.h>#include <sys/time.h>#define TIME_DIFF(ts,te) ((te.tv_sec-ts.tv_sec)+(te.tv_usec-ts.tv_us...原创 2019-01-24 10:20:26 · 322 阅读 · 0 评论 -
UDP通讯数据长度
这几天想搞个udp服务端,先试试了udp通讯长度,找了4台服务器,包括一个阿里云的,只有两台支持udp通讯,包括阿里云的一台和一台成都市的机房的都接收不到udp数据,不管长度多少这2台都收不到数据,但如果是他们127.0.0.1本地发的却能收到,没有开iptables。 能接收到的两台,接收端只能接收到1029长度的数据,只要长于1029,那就会只收到你发的数据中最短的那条:比如你发1...原创 2019-01-11 18:11:16 · 622 阅读 · 0 评论 -
Android AOSP 环境下实现C++直接调用libmedia.so接口播放视频文件。
最近需要hook android libmedia.so以取得播放进度。没搞出来,先搞了个c++直接播放MP4的程序:#include <unistd.h>#include <stdio.h>#include <stdlib.h>#define LOG_TAG "INJECT-lx"#include <android/log.h>...原创 2018-08-21 15:29:24 · 1707 阅读 · 0 评论 -
Jump to the invalid address stated on the next line
#define LOG_ERROR(s, args...) {\ char _error_log[128];\ sprintf(_error_log, "[Error] at %d in %s(%s) line %d, "s, now_sec.tv_sec,__FILE__, __FUNCTION__, __LINE__, ##args);\ logi(_error_log, "/var/l...原创 2018-07-02 16:51:37 · 776 阅读 · 0 评论 -
https TSL (SSL) client hello server hello浅析。
因为要做个拨测,需要拨测https,也就是要看是否能与https服务器正常通讯。所以查了资料,结合wireshark分析了下,client hello 、server hello内容。两个hello通讯的前43个字节,意义是相同的://https tlsstruct ProtocolVersion{ uint8_t major; uint8_t minor;};enum Conten...原创 2018-05-04 15:42:40 · 7867 阅读 · 0 评论 -
iOS不显示状态栏(电池和信号栏)
//隐藏状态栏- (BOOL)prefersStatusBarHidden{ return YES;}在viewcontroller里面加入原创 2014-12-21 19:50:59 · 5169 阅读 · 0 评论 -
定长度结构体数组、不定长度结构体指针初始化
#include #include typedef struct str{ int a; int b;}Str; int main(){ Str s[1]={{a:1,b:2}};//注意这里的冒号 printf("a=%d\nb=%d\n",s[0].a,s[0].b);}原创 2013-09-11 12:25:50 · 4218 阅读 · 0 评论 -
NSString length的坑。
说坑,可能过头了,是我理所当然的把OC看作C了,原创 2014-08-13 16:41:20 · 1073 阅读 · 0 评论 -
C char** 的一点儿理解
理解是就是char** 相当于在原创 2014-08-20 11:50:21 · 709 阅读 · 0 评论 -
iOS 文件读写
#import "Utils.h"@implementation Utils+(void) writeFile:(NSString *) filePath data:(NSString *) _data{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask原创 2014-08-05 12:09:57 · 619 阅读 · 0 评论 -
CCocos2Dx 一段遍历子节点的代码
CCLog("Lein will hide account!CS_FAST_REGISTER_REQ"); CCArray *pChildren = m_pLayer->getChildren(); if(pChildren && pChildren->count() > 0) { int i=0; CCObject* child; CCARRAY_FOREACH(p转载 2014-07-08 19:02:49 · 4255 阅读 · 0 评论 -
CentOS linux 下eclipse+cdt编译报undefined reffrece to *
原创 2013-11-04 19:15:17 · 926 阅读 · 0 评论 -
消息队列的设置
/etc/sysctl.conf修改kernel.msgmni=1000kernel.msgmax=81920kernel.msgmnb=163840MSGMNB每个消息队列的最大字节限制。该文件指定一个消息队列的最大长度(bytes)。MSGMNI 整个系统的最大数量的消息队列。该文件指定消息队列标识的最大数目,即系统范围内最大多少个消息队列。MSGGSZ转载 2012-11-07 18:05:42 · 4137 阅读 · 0 评论 -
安裝linux後的內核調優
vi /etc/sysctl.conf编辑文件,加入以下内容:net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 30然后执行/sbin/sysctl -p让参数生效。net.ipv4.tcp_syncookie转载 2011-07-06 18:10:42 · 2333 阅读 · 0 评论 -
转,网上的多数都只谈格式文字,基本用法都没有谈,这篇才是好文!
printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精原创 2010-03-28 20:39:00 · 550 阅读 · 0 评论 -
使用Valgrind 查找内存泄露
[code=C/C++]} php_bufferevent_t;[color=#FF0000]//line 107[/color]/* }}} *//*storage datas from client*/typedef struct _request_quee {/* {{{ */ zval *readcb;//call this function when get data char *data;//data get from client long id;//client id struct _req转载 2010-12-15 10:08:00 · 672 阅读 · 0 评论 -
HTTP(socket)下载遇到valgrind提示的错误: Conditional jump or move depends on uninitialised value(s)
我写了个http下载函数,下载txt、jpg都正常,就是下载php有问题:valgrind会报错Conditional jump or move depends on uninitialised value(s), 函数定义: char* httpdown(char *domain, int port, char *uri, int *length) ; 调用: st原创 2014-09-04 14:00:27 · 2658 阅读 · 0 评论 -
c实现的iOS http下载类。支持自己设定http 头(比如cookie等)
也许有人要问为什么要自己用c写?原创 2014-10-21 16:45:15 · 1369 阅读 · 0 评论 -
iOS Webview 实现修改javascript confirm 和 alert
@interface UIWebView (JavaScriptAlert)-(void) webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame;- (BOOL)webView:(UIWebView *)sender runJav原创 2015-01-09 14:59:13 · 7681 阅读 · 3 评论 -
adMob iAd整合,随机根据网络状况自动显示。
最近找整合的代码,找到的都不对,有个大概对的,但要奔溃退出,只要两个单独弄。adMob 下载好sdk,导入进去,iAd的加入iad framework.使用方法,在viewController viewDidAppear内添加IADView* adView = [IADView sharedInstance]; [adView createAdBannerView:self.v原创 2014-12-03 12:26:49 · 951 阅读 · 0 评论 -
setsockopt的作用
功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#inc转载 2014-11-25 17:11:54 · 500 阅读 · 0 评论 -
C 发现个全局变量与局部变量的区别
发现个全局变量与局部变量的区别:[code=C/C++]char** t;main(){ char c[1]; char** t1; sprintf(c,"%d",t); printf("t=%s---/n",c); if(strcmp(c,"0")!=0) { printf("t is Not Nu原创 2010-04-11 11:58:00 · 539 阅读 · 0 评论