struct sockaddr 结构类型怎么比较

10:04 socket.error C2011: “sockaddr”: “struct”类型重定义_IThao123 - IT行业第一站
10:04 socket.error C2011: “sockaddr”: “struct”类型重定义
1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(91)&:&warning&C4005:&“AF_IPX”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(460)&:&参见“AF_IPX”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(127)&:&warning&C4005:&“AF_MAX”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(479)&:&参见“AF_MAX”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(163)&:&warning&C4005:&“SO_DONTLINGER”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(402)&:&参见“SO_DONTLINGER”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(207)&:&error&C2011:&“sockaddr”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(485)&:&参见“sockaddr”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(385)&:&error&C2143:&语法错误&:&缺少“}”(在“常量”的前面)1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(385)&:&error&C2143:&语法错误&:&缺少“;”(在“常量”的前面)1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(385)&:&error&C2059:&语法错误&:&“常量”1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(438)&:&error&C2143:&语法错误&:&缺少“;”(在“}”的前面)1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(438)&:&error&C4430:&缺少类型说明符&-&假定为&int。注意:&C++&不支持默认&int1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(438)&:&error&C4430:&缺少类型说明符&-&假定为&int。注意:&C++&不支持默认&int1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(519)&:&warning&C4005:&“IN_CLASSA”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(287)&:&参见“IN_CLASSA”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(525)&:&warning&C4005:&“IN_CLASSB”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(293)&:&参见“IN_CLASSB”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(531)&:&warning&C4005:&“IN_CLASSC”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(299)&:&参见“IN_CLASSC”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(542)&:&warning&C4005:&“INADDR_ANY”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(304)&:&参见“INADDR_ANY”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(544)&:&warning&C4005:&“INADDR_BROADCAST”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(306)&:&参见“INADDR_BROADCAST”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includews2def.h(578)&:&error&C2011:&“sockaddr_in”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(312)&:&参见“sockaddr_in”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(132)&:&error&C2011:&“fd_set”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(68)&:&参见“fd_set”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(167)&:&warning&C4005:&“FD_SET”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(102)&:&参见“FD_SET”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(176)&:&error&C2011:&“timeval”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(111)&:&参见“timeval”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(232)&:&error&C2011:&“hostent”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(167)&:&参见“hostent”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(245)&:&error&C2011:&“netent”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(180)&:&参见“netent”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(252)&:&error&C2011:&“servent”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(187)&:&参见“servent”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(264)&:&error&C2011:&“protoent”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(199)&:&参见“protoent”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(360)&:&error&C2011:&“WSAData”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(322)&:&参见“WSAData”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(458)&:&error&C2011:&“sockproto”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(494)&:&参见“sockproto”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(500)&:&error&C2011:&“linger”:&“struct”类型重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(531)&:&参见“linger”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(513)&:&warning&C4005:&“SOMAXCONN”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(544)&:&参见“SOMAXCONN”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(542)&:&warning&C4005:&“FD_READ”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(562)&:&参见“FD_READ”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(545)&:&warning&C4005:&“FD_WRITE”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(563)&:&参见“FD_WRITE”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(548)&:&warning&C4005:&“FD_OOB”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(564)&:&参见“FD_OOB”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(551)&:&warning&C4005:&“FD_ACCEPT”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(565)&:&参见“FD_ACCEPT”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(554)&:&warning&C4005:&“FD_CONNECT”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(566)&:&参见“FD_CONNECT”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(557)&:&warning&C4005:&“FD_CLOSE”:&宏重定义1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(567)&:&参见“FD_CLOSE”的前一个定义1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1527)&:&error&C2375:&“accept”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(735)&:&参见“accept”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1548)&:&error&C2375:&“bind”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(740)&:&参见“bind”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1567)&:&error&C2375:&“closesocket”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(745)&:&参见“closesocket”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1586)&:&error&C2375:&“connect”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(747)&:&参见“connect”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1607)&:&error&C2375:&“ioctlsocket”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(752)&:&参见“ioctlsocket”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1628)&:&error&C2375:&“getpeername”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(757)&:&参见“getpeername”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1649)&:&error&C2375:&“getsockname”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(762)&:&参见“getsockname”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1672)&:&error&C2375:&“getsockopt”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(767)&:&参见“getsockopt”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1693)&:&error&C2375:&“htonl”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(774)&:&参见“htonl”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1710)&:&error&C2375:&“htons”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(776)&:&参见“htons”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1728)&:&error&C2375:&“inet_addr”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(778)&:&参见“inet_addr”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1745)&:&error&C2375:&“inet_ntoa”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(780)&:&参见“inet_ntoa”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1763)&:&error&C2375:&“listen”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(782)&:&参见“listen”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1781)&:&error&C2375:&“ntohl”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(786)&:&参见“ntohl”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1798)&:&error&C2375:&“ntohs”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(788)&:&参见“ntohs”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1818)&:&error&C2375:&“recv”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(790)&:&参见“recv”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1843)&:&error&C2375:&“recvfrom”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(796)&:&参见“recvfrom”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1869)&:&error&C2375:&“select”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(804)&:&参见“select”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1893)&:&error&C2375:&“send”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(811)&:&参见“send”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1918)&:&error&C2375:&“sendto”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(817)&:&参见“sendto”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1944)&:&error&C2375:&“setsockopt”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(825)&:&参见“setsockopt”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1966)&:&error&C2375:&“shutdown”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(832)&:&参见“shutdown”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(1986)&:&error&C2375:&“socket”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(836)&:&参见“socket”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2009)&:&error&C2375:&“gethostbyaddr”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(843)&:&参见“gethostbyaddr”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2029)&:&error&C2375:&“gethostbyname”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(848)&:&参见“gethostbyname”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2047)&:&error&C2375:&“gethostname”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(850)&:&参见“gethostname”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2067)&:&error&C2375:&“getservbyport”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(854)&:&参见“getservbyport”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2087)&:&error&C2375:&“getservbyname”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(858)&:&参见“getservbyname”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2106)&:&error&C2375:&“getprotobynumber”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(862)&:&参见“getprotobynumber”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2124)&:&error&C2375:&“getprotobyname”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(864)&:&参见“getprotobyname”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2145)&:&error&C2375:&“WSAStartup”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(868)&:&参见“WSAStartup”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2163)&:&error&C2375:&“WSACleanup”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(872)&:&参见“WSACleanup”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2180)&:&error&C2375:&“WSASetLastError”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(874)&:&参见“WSASetLastError”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2197)&:&error&C2375:&“WSAGetLastError”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(876)&:&参见“WSAGetLastError”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2214)&:&error&C2375:&“WSAIsBlocking”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(878)&:&参见“WSAIsBlocking”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2231)&:&error&C2375:&“WSAUnhookBlockingHook”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(880)&:&参见“WSAUnhookBlockingHook”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2248)&:&error&C2375:&“WSASetBlockingHook”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(882)&:&参见“WSASetBlockingHook”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2265)&:&error&C2375:&“WSACancelBlockingCall”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(884)&:&参见“WSACancelBlockingCall”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2287)&:&error&C2375:&“WSAAsyncGetServByName”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(886)&:&参见“WSAAsyncGetServByName”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2314)&:&error&C2375:&“WSAAsyncGetServByPort”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(894)&:&参见“WSAAsyncGetServByPort”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2340)&:&error&C2375:&“WSAAsyncGetProtoByName”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(902)&:&参见“WSAAsyncGetProtoByName”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2365)&:&error&C2375:&“WSAAsyncGetProtoByNumber”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(909)&:&参见“WSAAsyncGetProtoByNumber”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2390)&:&error&C2375:&“WSAAsyncGetHostByName”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(916)&:&参见“WSAAsyncGetHostByName”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2417)&:&error&C2375:&“WSAAsyncGetHostByAddr”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(923)&:&参见“WSAAsyncGetHostByAddr”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2440)&:&error&C2375:&“WSACancelAsyncRequest”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(932)&:&参见“WSACancelAsyncRequest”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(2461)&:&error&C2375:&“WSAAsyncSelect”:&重定义;不同的链接1&&&&&&&&&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock.h(934)&:&参见“WSAAsyncSelect”的声明1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(3910)&:&error&C2059:&语法错误&:&“}”1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(3910)&:&error&C2143:&语法错误&:&缺少“;”(在“}”的前面)1&c:program&filesmicrosoft&sdkswindowsv6.1includewinsock2.h(3910)&:&error&C2059:&语法错误&:&“}”1&d:worktradedispatchertestclientnetworkrecver.cpp(40)&:&error&C3861:&“closesocket”:&找不到标识符1&d:worktradedispatchertestclientnetworkrecver.cpp(65)&:&error&C3861:&“send”:&找不到标识符1&d:worktradedispatchertestclientnetworkrecver.cpp(65)&:&error&C2440:&“初始化”:&无法从“int&(__stdcall&*)(SOCKET,const&char&*,int,int)”转换为“int”1&&&&&&&&&没有使该转换得以执行的上下文1&d:worktradedispatchertestclientnetworkrecver.cpp(142)&:&error&C3861:&“recv”:&找不到标识符1&d:worktradedispatchertestclientnetworkrecver.cpp(142)&:&error&C2440:&“初始化”:&无法从“int&(__stdcall&*)(SOCKET,char&*,int,int)”转换为“int”1&&&&&&&&&没有使该转换得以执行的上下文
重复定义问题,
将#include&&windows.h&放在#include&winsock2.h&之后即可。
CopyRight 2014-最近在看网络编程部分内容,刚开始接触结构体struct sockaddr和struct sockaddr_in的时候,极其迷惑,在网上翻了不少帖子,慢慢有那么点清晰了。呵呵,现在结合一篇网友的文章,对这两个结构体进行解读。在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t;struct sockaddr {&&&&&&& sa_family_t&&&& sa_&&& /* address family, AF_xxx&&&&&& */&&&&&&& char&&&&&&&&&&& sa_data[14];&&& /* 14 bytes of protocol address */
}在linux环境下,结构体struct sockaddr_in在/usr/include/netinet/in.h中定义,具体如下:/* Structure describing an Internet socket address. */struct sockaddr_in{&&& __SOCKADDR_COMMON (sin_);&&& in_port_t sin_&&&&&&&&&&&&&&&&&&&& /* Port number. */&&& struct in_addr sin_&&&&&&&&&&& /* Internet address. */&&& /* Pad to size of `struct sockaddr'. */&&& unsigned char sin_zero[sizeof (struct sockaddr) -&&&&&&&&&&&&&&&&&&&&&&&&&& __SOCKADDR_COMMON_SIZE -&&&&&&&&&&&&&&&&&&&&&&&&&& sizeof (in_port_t) -&&&&&&&&&&&&&&&&&&&&&&&&&& sizeof (struct in_addr)];&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /* 字符数组sin_zero[8]的存在是为了保证结构体struct sockaddr_in的大小和结构体struct sockaddr的大小相等 */};struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。下面是struct sockaddr_in中用到两个数据类型,具体定义如下:/* Type to represent a port. */typedef uint16_t in_port_t;&struct in_addr其实就是32位IP地址struct in_addr {&&&&&&& unsigned long s_};BSD网络软件中包含了两个函数,用来在二进制地址格式和点分十进制字符串格式之间相互转换,但是这两个函数仅仅支持IPv4。&&&&&& in_addr_t inet_addr(const char *cp);&&&&&& char *inet_ntoa(struct in_addr in);功能相似的两个函数同时支持IPv4和IPv6&&&&&& const char *inet_ntop(int domain, const void *addr, char *str, socklen_t size);&&& && int inet_pton(int domain, const char *str, void *addr);通常的用法是:struct sockaddr_in my_sockfd = socket(AF_INET, SOCK_STREAM, 0);&my_addr.sin_family = AF_INET; /* 主机字节序 */my_addr.sin_port = htons(MYPORT); /* short, 网络字节序 */my_addr.sin_addr.s_addr = inet_addr("192.168.0.1");bzero(&(my_addr.sin_zero), 8); /* zero the rest of the struct *///memset(&my_addr.sin_zero, 0, 8);bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr));
阅读(...) 评论()

我要回帖

更多关于 struct sockaddr ll 的文章

 

随机推荐