受众 -> 中国好声音广告 -> 华为手机 -> 零件供应商
| -> 工人工资
| -> 广告费用
| -> 卖出受众
--> 演员
--> 评委
--> 场地...
广告效应和商业效应
2016年11月20日星期日
php sockets, pthreads, parse binary
sockets:
$fp = fsockopen('www,baidu.com', 80, $errno, $errstr, 30);
//$fp = stream_socket_client('tcp://www.baidu.com:80', $errno, $errstr);
if(!$fp) {
echo "{$errno}, {$errstr}\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.baidu.com\r\n";
$out .= "Connection: close\r\n\r\n";
fwrite($fp, $out);
$out = '';
while(!feof($fp)) {
$out .= fread($fp, 1024);
}
fclose($fp);
}
-----------------------------------------------------------------------
pthreads:
class T1 extends Thread {
function run() {
while(1) {
echo "T1\n";
sleep(1);
}
}
}
$t1 = new T1();
$t1->start();
$t1->join();
while(1) {
echo "T2\n";
sleep(1);
}
------------------------------------------------------------------------
parse binary
pack & unpack function
《PHP: 深入pack/unpack》
https://my.oschina.net/goal/blog/195749
$fp = fsockopen('1.1.1.1', 4661, $errno, $errstr, 30);
if(!$fp) {
echo "{$errno}, {$errstr}\n";
} else {
// login
$protocol_type = pack('C', 0xE3);
$message_type = pack('C', 0x01);
$user_hash = md5('abc', true);
$client_id = pack('V', 0);
$tcp_port = pack('v', 4661);
$tag_count = pack('V', 4);
$tag_name = pack('CvCva20', 0x02, 1, 0x01, 20, 'http://www.amule.org');
$tag_version = pack('CvCV', 0x03, 1, 0x11, 60);
$tag_port = pack('CvCV', 0x03, 1, 0x20, 285);
$tag_id = pack('CvCV', 0x03, 1, 0xfb, 50596992);
$message_body = $message_type . $user_hash . $client_id . $tcp_port . $tag_count . $tag_name . $tag_version . $tag_port . $tag_id;
$message_size = pack('V', strlen($message_body));
$message_header = $protocol_type . $message_size;
$message = $message_header . $message_body;
fwrite($fp, $message);
// server message
$out = '';
$out = fread($fp, 8);
$l = strlen($out);
$out = unpack('H2protocal_type/Vmessage_size/H2message_type/vstring_length', $out);
$out = fread($fp, $out['string_length']);
fclose($fp);
}
$fp = fsockopen('www,baidu.com', 80, $errno, $errstr, 30);
//$fp = stream_socket_client('tcp://www.baidu.com:80', $errno, $errstr);
if(!$fp) {
echo "{$errno}, {$errstr}\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.baidu.com\r\n";
$out .= "Connection: close\r\n\r\n";
fwrite($fp, $out);
$out = '';
while(!feof($fp)) {
$out .= fread($fp, 1024);
}
fclose($fp);
}
-----------------------------------------------------------------------
pthreads:
class T1 extends Thread {
function run() {
while(1) {
echo "T1\n";
sleep(1);
}
}
}
$t1 = new T1();
$t1->start();
$t1->join();
while(1) {
echo "T2\n";
sleep(1);
}
------------------------------------------------------------------------
parse binary
pack & unpack function
《PHP: 深入pack/unpack》
https://my.oschina.net/goal/blog/195749
$fp = fsockopen('1.1.1.1', 4661, $errno, $errstr, 30);
if(!$fp) {
echo "{$errno}, {$errstr}\n";
} else {
// login
$protocol_type = pack('C', 0xE3);
$message_type = pack('C', 0x01);
$user_hash = md5('abc', true);
$client_id = pack('V', 0);
$tcp_port = pack('v', 4661);
$tag_count = pack('V', 4);
$tag_name = pack('CvCva20', 0x02, 1, 0x01, 20, 'http://www.amule.org');
$tag_version = pack('CvCV', 0x03, 1, 0x11, 60);
$tag_port = pack('CvCV', 0x03, 1, 0x20, 285);
$tag_id = pack('CvCV', 0x03, 1, 0xfb, 50596992);
$message_body = $message_type . $user_hash . $client_id . $tcp_port . $tag_count . $tag_name . $tag_version . $tag_port . $tag_id;
$message_size = pack('V', strlen($message_body));
$message_header = $protocol_type . $message_size;
$message = $message_header . $message_body;
fwrite($fp, $message);
// server message
$out = '';
$out = fread($fp, 8);
$l = strlen($out);
$out = unpack('H2protocal_type/Vmessage_size/H2message_type/vstring_length', $out);
$out = fread($fp, $out['string_length']);
fclose($fp);
}
2016年11月16日星期三
C/C++ '\0' 空字符
https://zh.wikipedia.org/wiki/%E7%A9%BA%E5%AD%97%E7%AC%A6
malloc 字符串,需要多加一个字符 \0
malloc 二进制数据,不需要加 \0
字符串需要 \0
二进制数据不需要 \0
malloc 字符串,需要多加一个字符 \0
malloc 二进制数据,不需要加 \0
字符串需要 \0
二进制数据不需要 \0
2016年11月4日星期五
windows dmg 转换为 iso
1. 下载 dmg2img 工具
2. dmg2img -l xxx.dmg 列出 dmg 中的所有分区
3. dmg2img -p N xxx.dmg xxx.iso 将 Apple HFS+ 所在的分区导出 iso
2. dmg2img -l xxx.dmg 列出 dmg 中的所有分区
3. dmg2img -p N xxx.dmg xxx.iso 将 Apple HFS+ 所在的分区导出 iso
订阅:
评论 (Atom)