CR的代码文本

all for learning about the world
  订阅 订阅  :: 管理

备忘2天

Posted on 2012-05-10 13:00  mumuliang  阅读(264)  评论(0编辑  收藏  举报

1.

CPU耗尽

使用OpenMP平行化处理数值运算以后,会耗尽CPU能力,出现100%占用。

CMP格式解压模块用到OpenMP。

宁波墙上的程序CPU100%占用的原因咩?

高性能开发

CPU并行运算:OpenMP,MPI,TBB,MapReduce(这个听起来最像所谓的云计算)

GPGPU:CUDA,OpenCL

long long和LONGLONG

win32中的long long就是基本类型,DWORD也定义为该类型。但LONGLONG实际是__int64

sprintf输出long long使用格式符%ld,LONGLONG则是%I64d。

2.

IPv4中,TCP和UDP都需要客户机指定服务器的IP和端口号。服务器也需要指定监听的客户机的IP和端口号。

该数据结构是sockaddr_in

struct socaddr_in

{

    short            sin_family;            // 设为AF_INET,指定正在使用IP地址族

    u_short            sin_port;            // 端口号

    struct in_addr    sin_addr;            // IP地址,unsigned long inet_addr(const char FAR *cp)

    char            sin_zero[8];        //

}

函数inet_addr()用来将ip字符串转成无符号长整数ip。

unsigned long inet_addr(const char FAR *cp)

字节顺序,大部分CPU比如Intel86都使用小头法。Internet标准中定义的网络字节顺序是大头法。有8个API用来处理主机字节和网络字节的转换,从host到net和从net到host各4个。下面是host to net的4个。

 

u_long htonl(u_long hostlong);

int WSAHtonl(

    SOCKET    s,

    u_long    hostlong,

    u_long FAR * lpnetlong;

}

u_short htons(u_short hostshort);

int WSAHtons(

    SOCKET    s,

    u_short    hostshort,

    u_short FAR * lpnetshort;

};

套接字类型,SOCK_STREAM(TCP/IP)和SOCK_DGRAM(UDP/IP)。

套接字Protocol,IPPROTO_TCP和IPPROTO_UDP。

accept失败

accept函数,会传入SOCKADDR的长度,这个长度值必须初始化成正确值。

比如定义了SOCKADDR_IN addr,则int len = sizeof(addr).

send失败

send失败的情况比较出人意料。是因为TCPServer线程退出了。

因为在server的测试项目中,accept()函数后就是return。一旦有客户端连接进来,accept就会返回。于是测试的server项目就退出了。

介就是为嘛显示框架slave master有先后么?

WSAEMSGSIZE

流传输协议接收数据是缓冲的,不会有WSAEMSGSIZE。

UDP上如果数据超过缓冲区大小会造成该错误。