一个有关in_addr的问题请教!
在函数开始声明了:
int i;
DWORD dwIP;
IP_HEADER ipHeader;
UDP_HEADER udpHeader;
in_addr a;
memcpy(&dwIP, byteArray+26,sizeof(dwIP)); //src ip;
a.s_addr = dwIP;(a.S_un.S_addr也试过了) 还是一样
提示如下错误:
error C2065: 'in_addr ' : undeclared identifier
error C2146: syntax error : missing '; ' before identifier 'a '
error C2065: 'a ' : undeclared identifier
error C2224: left of '.S_un ' must have struct/union type
如果: 把in_addr 声明放到i下面 , 一下在好多错误.
注: 我在project setting 中添加了 ws2_32.lib.
也程序中也添入了 #include <winsock.h>
请哪个朋友指点一下!
[解决办法]
Winsock2.h
[解决办法]
你自己打开Winsock2.h看看:
......
struct in_addr {
union {
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr;
} S_un;
#define s_addr S_un.S_addr
/* can be used for most tcp & ip code */
#define s_host S_un.S_un_b.s_b2
/* host on imp */
#define s_net S_un.S_un_b.s_b1
/* network */
#define s_imp S_un.S_un_w.s_w2
/* imp */
#define s_impno S_un.S_un_b.s_b4
/* imp # */
#define s_lh S_un.S_un_b.s_b3
/* logical host */
};
[解决办法]
把
Ws2_32.lib
链接进来试一试