11/27/2007

无题

对最近发生的几件事情发点牢骚:
1. 上周四在amazon.cn定购了一本书,送货方式选择快递的,心想周末之前总能收到吧,所以就填了个家庭住址。没想到状态显示周一才能到,于是打电话给 送货商要求改地址,第一次打过去说管物流的人下午才上班,可是下午之后再打电话一直没人接了...周一再打,通了,告知货已在路上,地址不能改,叫我找 amazon改...想不同,他们宁愿白跑一趟也不愿从我这里知道正确的地址!随他吧,我只好找amazon改,声音甜蜜的amazon小姐很快记下了正 确的地址,说会通知送货商的。
今天,送货商打电话问我怎么家里没人?送了2次都没人接收,hoho,这不正是你们自己造成的吗?早告诉你不听,白跑两趟真活该!对我来说,反正是货到付款的,只是晚几天拿到而已。
2. 公司又发mail通知不能安装未授权的软件了,估计除了notebook自带的windows和一个杀毒软件,没有其他的可以用了。而且上次已经统计过工 作需要的软件工具,包括VMware,Source insight等,公司一个没买,这次又跳出来喊,显得很支持正版似的,其实正应了一句古话:既要做婊子,又要立牌坊!
3. 是一件小事,有天我想打电话给浦发信用卡中心,到它网站上找了很长时间才找到电话号码,真不知道他们有没有把方便客户放在心上,“用心服务“这个口号用的不少,可是又有多少企业能做到呢?

11/17/2007

变长参数

#include 《stdarg.h》

void LOG(const char* fmt, ...)
{
va_list ap;
/*initializes the argument pointer variable */
va_start(ap, fmt);
vprintf(fmt, ap);
/*ends the use of ap*/
va_end(ap);
}

main()
{
LOG("%s:%d\n", __func__, __LINE__);
}

最简单的socket server/client(echoserver)

CLIENT:
1. 调用socket函数create一个(int)socket:
clientsock=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)
2. 初始化一个(struct sockaddr_in)echoserver:
memset(&echoserver, 0, sizeof(echoserver));
echoserver.sin_family = AF_INET;
echoserver.sin_port = htons(atoi(argv[3])); //Server Port
echoserver.sin_addr.s_addr = inet_addr(argv[1]); //Server IP
3. 调用connet向server发起连接请求:
connect(clientsock,&echoserver,sizeof(echoserver);
4. 调用send向已经与server连接的socket发数据
send(clientsock, argv[2], echolenth, 0)
5. 或调用recv从已经与server连接的socket接收数据
recv(clientsock,buffer,BUFFER_SIZE-1,0)
6. 用完关闭socket
close(clientsock)

SERVER:
1. create (int)socket-serversock(for bind/listen/accept), define clientsock(for recv):
serversock=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)
2. 初始化(struct sockaddr_in)echoserver(for bind),定义echoclient(for accept):
memset(&echoserver, 0, sizeof(echoserver)); /* Clear struct */
echoserver.sin_family = AF_INET; /* Internet/IP */
echoserver.sin_addr.s_addr = htonl(INADDR_ANY); /* Incoming addr */
echoserver.sin_port = htons(atoi(argv[1])); /* server port */
3. 调用bind绑定echoserver:
bind(serversock, &echoserver, sizeof(echoserver));
4. 监听端口
listen(serversock, MAXPENDING) /*可设置最大连接数*/
5. while循环里等待连接请求
/*得到(int)clientsock,(struct sockaddr_in)echoclient的信息*/
(int)clientsock = accept(serversock, &echoclient, &length/*sizeof(echoclient)*/)
6. 处理接收到的clientsock
6.1 从clientsock中接收数据:
recv(clientsock,buffer,BUFFSIZE,0)
6.2 往clientsock中发送数据:
send(clientsock, buffer, received, 0)
6.3 关闭clientsock:
close(clientsock);

参考:
http://www.ibm.com/developerworks/cn/views/linux/tutorials.jsp?cv_doc_id=85074

11/12/2007

I'm Back

我又上来了,哈哈!野火烧不尽,春风吹又生啊!
好像不是一回事,不好意思...
没有更新blog,主要是业余时间实在太少了,在公司自然不必说,从9点半开始到,啃呲啃呲的要干到下午6点,坐班车换地铁再坐公交到家都已经8点了,老婆大人比较关心我,在家都很少让我对着电脑。说实话,在公司天天坐在40寸液晶前半米的位置,眼睛已经够难受的了。
上海的生活实在太辛苦,每天3小时在路上,公司新大楼也是个垃圾工程,头顶的排风管道就象波音747一样轰鸣,简直不是人待的!还有那个电梯,会突然断电...
所以啊,这次出差虽然会比较辛苦,我也毫不计较了,好歹也半年没出差了,出来透透新鲜空气也不错。不说美国月亮比中国圆,但是东京的空气绝对比上海好!拿"拍虎英雄"周正龙的话来说,可以拿脑袋担保!反正说错了也没人来要脑袋,呵呵
这次到日本来是要给SONY, SHARP做ARIB的DEMO,嘿嘿,最近猎头盯我们公司盯的比较紧,虽然我现在走不了,做做广告还是可以的,几年后再联系我哦~听清楚了,“我是做ARIB SDK的”。ARIB是日本的数字电视标准,日本之外的设计方案很少,我们是第一家哦,不过MTK在后面追的也挺紧的。
今天在东京转新干线的时候看到很多人围着一个出口,很多人拿着手机准备拍照的样子,我们以为有什么影视明星要出来了,路也堵了,顺便也等着看热闹。过了一下,主角出来了,是3个人,日本皇太子一家3口,小女孩还挺活泼的,皇太子和太妃朝人群挥手致意,很平常的样子。同事说可惜没带枪,呵呵。想想也是,要是江太子在人民广场地铁出现的话,整个车站估计都封掉了。
晚上吃饭,6个人,每人一碗饭一杯果汁,中间一个小锅煮一盆清水+一片叶子,还有2盘肉加菜,大家几乎都没怎么吃饱,结帐的时候竟然要14,000日元,天哪!好贵!