第七十四章 再改豌豆射手-《末日编程者》


    第(2/3)页

    int  encodeLong(long  long  int  src,unsigned  char  **ret,int  &len)

    {

    unsigned  char  *buf  =(unsigned  char*)malloc(9);

    memset(buf,0,9);

    unsigned  char  *p  =  buf;

    *p++|=  LPUSH_FMT_LONG;

    *p++|=(src>>56)&0xFF;

    *p++|=(src>>48)&0xFF;

    *p++|=(src>>40)&0xFF;

    *p++|=(src>>32)&0xFF;

    *p++|=(src>>24)&0xFF;

    *p++|=(src>>16)&0xFF;

    *p++|=(src>>8)&0xFF;

    *p++|=(src)&0xFF;

    len  =  9;

    *ret  =  buf;

    return  0;

    }

    这段代码的作用就是把一个长整型的数据封装进入字节流,并且字节流的首地上返回给二级指针。

    业务模块就好理解很多了,比如转发一个客户端传递来的消息,通过用户id的标示找到相应的用户,再从用户注册在服务器的消息找到相应的客户端,然后把消息通过socket传输给另外的客户端。

    韩海花了整整半夜才完成了服务器的编写,要不是很多东西他都写过,也不可能这么快,一个新手如果写一个聊天服务器,从入门到上手就需要一个月,当然新手是指的工科毕业生的水平。
    第(2/3)页