工作中的一些小总结
来源:互联网 发布:植物大战僵尸 知乎 编辑:程序博客网 时间:2024/05/05 10:08
2010-10-20 一语点醒梦中人
前几天在调试基于UDP协议传输数据的代码,卡了两天,死活不通。原意是使用UDP协议读取到特定的字节后改变缓冲区大小,再使用它去读取后边的数据,但是再读取数据时,读到的数据是这个特定的字节加后边的信息,不知道为什么会重复读取到这个特定的字节。后来一个同事问另一个同事,他说:使用UDP协议传输数据,每次的数据都是新的,这次传输的数据没读完,UDP包就被丢弃了,下次读取的数据就是另外一个新的UDP包了。后来在代码中加上打印信息,两次读的数据果然不同。真是一语点醒梦中人,在此记下,以免以后碰到类似问题又忘了!
2010-10-26 字节对齐
对于前者,括号里为“(packed)”的时候,如果是普通数据类型,那么表示按照1个字节对齐,如果是位域时,表示按位对齐;如果括号中是“(aligned(n))”,表示按照n个字节对齐(n必须是2的幂),但是经测试n的值小于结构体或者联合体中最长的变量的长度时,对齐采用默认对齐方式;当编译器对变量的最大对齐值设置为一个特定值时,如果n大于这个值,那么只按照编译器设置的最大值对齐。如果括号中是“(aligned)”,采用默认的对齐方式。另外,__attribute__(xxx)可以用于结构体或联合体中的成员。
对于后者,括号里为空时,表示采用默认最大最有益的对齐方式。n也必须是2的幂。当n小于结构体或者联合体中最长的变量的长度时,对齐采用n字节对齐方式;当n大于等于结构体或者联合体中最长的变量的长度时,采用默认对齐方式。#pragma pack(x)不能单独用于结构体和联合体中的成员。
默认对齐方式是采用当前最长的变量的长度作为对齐方式。
2011-10-20
setsockopt函数在Windows和Linux下设置参数的区别
Linux:
struct timeval tv = {3, 0};//3s
int ret = setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
int ret = setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
//ret == 0 OK, ret == -1 fail
int recvd = recv(sock_fd, buf, 1024, 0);
if (recvd == -1 && errno == EAGAIN)
{
printf("timeout\n");
}
Windows:
int timeout = 3000; //3s
int ret = setsockopt(sock_fd, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
int ret = setsockopt(sock_fd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
- 工作中的一些小总结
- 工作中的一些总结
- 工作中的一些总结
- 一些工作中的小经验
- 工作中的一点小总结
- 【综合】工作中的小总结
- 近期工作的一些小总结
- String工作中的一些小应用
- 工作中的总结 小技巧 等待
- 产品工作中的沟通注意事项小总结
- iphone开发中的一些小技术总结
- Qt窗口中的一些小技术总结
- Qt窗口中的一些小技术总结
- Qt窗口中的一些小技术总结
- swift 开发过程中的一些小总结
- 工作过程中的一些小细节与大问题
- 工作过程中的一些总结和相关的链接地址
- 工作小总结
- log4j通过SocketAppender将日志内容发送到远程服务器
- 两款免费软件,合起来可以替代UltraEdit
- OFBIZ 分页代码
- 用委托实现回调
- 触发器
- 工作中的一些小总结
- android 很难找的xml 转义符
- 动态绘制图形的基本思路
- IIS httpd.ini rewrite 重写的时候如何忽略查询字符串?
- Android 开发性能优化简介
- Android 开发源码分享
- 浅谈分页
- HTML超出文本显示省略号...[text-overflow]
- GIST特征描述符使用