Bis*_*Das 3 c sockets struct network-programming sendto
我使用的是C语言,它是服务器和客户端的通用平台.
我有一个特定类型的结构,我想从服务器发送到客户端.
例如
服务器代码
//necessary declarations
struct hostent *hp;
hp=gethostbyname("www.google.com");
sendto(sockDes,&hp,sizeof(hp),0,(struct sockaddr *)&cli_addr,sizeof(cli_addr));
Run Code Online (Sandbox Code Playgroud)
客户代码
struct hostent *hp;
msg=recvfrom(mysock,&hp,sizeof(hp),0,(struct sockaddr)&serv_addr,&size_len);
Run Code Online (Sandbox Code Playgroud)
所以,基本上我想从服务器向客户端发送一个结构.但是从上面的代码中我得到了分段错误,我不确定这种结构转移是否可行.有什么出路吗?
首先,您必须使用malloc()以便为struct hostent分配内存.你可以通过sendto()/ recvfrom()传递一个结构,但由于struct hostent包含指针,这个结构的成员只要被转移到另一端就没有意义.