在网络通讯中,实现把一个int类型的值从服务器传输到另外一个电脑上

来源:互联网 发布:循环更新数据库 编辑:程序博客网 时间:2024/06/05 17:34

1.在网络通讯中,实现把一个int类型的值从服务器传输到另外一个电脑上,需要把一个int类型的变量放入到一个buffer中,和从buffer中取出一个int变量,要求buffer在不同平台之间通过网络传输,获取的int类型的数据是一样的,请写出来两种方法,一种为二进制的格式,另外一种为文本格式,要求:调用c的库函数实现;

//aData为输入参数,aBuffer为输入参数,指向要写的内存int WriteIntData(int aData, char *aBuffer){    if (NULL == aBuffer)        return -1;    _itoa(aData, aBuffer, 10); // 其实_itoa()函数只是在windows平台下能用,linux平台下不能用    return 0;}上面这种写法也不安全,改为下面这个。int WriteIntData(int data, char *buf, int buf_size){    if (NULL == buf)        return -1;    _itoa_s(data, buf, buf_size, 2); // 2是指二进制    return 0;}int WriteIntText(int aData, char *aBuffer){    /*sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,    而printf是将一个格式化的字符串输出到屏幕。sprintf的第一个参数    应该是目的字符串,如果不指定这个参数,执行过程中出现 "该程序产生    非法操作,即将被关闭...."的提示。    */    if(NULL == aBuffer)        return -1;    sprintf(aBuffer, "%d", aData);    return 0;}//aData为输出参数,存放读出的结果,aBuffer为输入参数,包含所需的数值int ReadIntData(int *aData, const char *aBuffer){    if (NULL == aData || NULL == aBuffer)        return -1;    //atoi将字符串转换为int整型    *aData = atoi(aBuffer);    return 0;}int ReadIntText(int *aData, const char *aBuffer){    if (NULL == aData || NULL == aBuffer)        return -1;    sscanf(aBuffer,"%d",aData);    return 0;}
阅读全文
0 1