#include <iostream>
#include <winsock2.h>
using namespace std;
#define MAXHOSTNAMELEN 128
int main () {
int sockSrvr;
int nPort = 3333;
char hostname[MAXHOSTNAMELEN + 1];
sockSrvr = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in address;
struct hostent *host;
gethostname(hostname, MAXHOSTNAMELEN);
host = gethostbyname(hostname);
address.sin_family = host -> h_addrtype;
address.sin_port = htons(nPort);
bind(sockSrvr, &address, sizeof(address));
listen(sockSrvr, SOMAXCONN);
return (1);
}
當我編譯的時候出現這樣的錯誤訊息:
error C2664: 'bind' : cannot convert parameter 2 from
'struct sockaddr_in *' to 'const struct sockaddr *'
Types pointed to are unrelated; conversion requires reinterpret_cast,
C-style cast or function-style cast
Error executing cl.exe.
請問這段錯誤訊息所指的是?又應該做何修改呢?
thanks in advance.
--
[1;32m※ Origin: [33m台灣科大電子站 [37m<bbs.et.ntust.edu.tw> [m
[1;31m◆ From: [36m140.118.41.15 [m
> 當我編譯的時候出現這樣的錯誤訊息:
>
> error C2664: 'bind' : cannot convert parameter 2 from
> 'struct sockaddr_in *' to 'const struct sockaddr *'
> Types pointed to are unrelated; conversion requires reinterpret_cast,
> C-style cast or function-style cast
> Error executing cl.exe.
>
> 請問這段錯誤訊息所指的是?又應該做何修改呢?
bind(sockSrvr, reinterpret_cast<struct sockaddr*>(&address),
sizeof(address));
四眼的王蟲
改為:
bind( sockSrvr,(sockaddr *)& ... );
就可以了,這是轉型的問題。
> listen(sockSrvr, SOMAXCONN);
>
> return (1);
> }
>
> 當我編譯的時候出現這樣的錯誤訊息:
>
> error C2664: 'bind' : cannot convert parameter 2 from
> 'struct sockaddr_in *' to 'const struct sockaddr *'
> Types pointed to are unrelated; conversion requires reinterpret_cast,
> C-style cast or function-style cast
> Error executing cl.exe.
>
> 請問這段錯誤訊息所指的是?又應該做何修改呢?
>