我是靠谱客的博主 伶俐电灯胆,最近开发中收集的这篇文章主要介绍linux和window下socket接口函数的传入参数不匹配,导致出错。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


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接口函数的传入参数不匹配,导致出错。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部