概述
linux下的socket接口函数:
send(,void*data,);
receive(,void*data,);
window下的socket接口函数:
send(,FAR const char *data,);
recieve(,FAR const char *data,);
如果服务器在linux端,而客户端在window下,不对处理,就会出现数据接收显示出错。
下面一段代码可以说明采用动态内存方式接收数据,用所需类型指针来读取内存数据,可以解决这个问题。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
char c[10];
int a;
char b;
} IP;
int main(int agrc,char *argv[])
{
IP ip={"hello",4,-45};
//strcpy(ip.c,"world");
IP *j;
char *p;
p=( char *)malloc(sizeof(IP)); 申请内存,并赋予char型指针
j=p; 相当于一个内存区地址被赋予两种不同数据类型的指针,你用哪个指针就可以把内存中的数据解析成那种数据类型。
memcpy(p,&ip,sizeof(IP)); 将结构体数据拷入内存 发送的时候就可以传参 P
printf("p data is :%s,%d,%d",j->c,j->a,j->b);
free(p);
getchar();
return 1;
}
最后
以上就是伶俐电灯胆为你收集整理的linux和window下socket接口函数的传入参数不匹配,导致出错。的全部内容,希望文章能够帮你解决linux和window下socket接口函数的传入参数不匹配,导致出错。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复