Hi,
I am completely new to emscipten sockets and am wondering how they work
and what to expect.
I understand they are built on top of websockets, but I always thought
websockets were SendMsg/RecvReply based - how does that work?
Do you have to use threads if you want to 'block' on an emscripten socket
without blocking the entire app? Is this recommended or is it best to just
'poll' via, say, ioctlsocket with FIONREAD. Can you poll with select?
Should I at least be able to connect to TCP port 80 of my http website? I
have so far been unable to perform a simple connect and wonder if it's even
possible? I'm not expecting to be able to perform an http GET - although
perhaps that is possible?
My connect code is ipv6-ish, ie:
int _connect( const char *hostname,const char *service ){
addrinfo hints;
memset( &hints,0,sizeof( hints ) );
hints.ai_family=AF_UNSPEC;
hints.ai_socktype=SOCK_STREAM;
hints.ai_protocol=IPPROTO_TCP;
if( hostname && !hostname[0] ) hostname=0;
addrinfo *pres=0;
if( ::getaddrinfo( hostname,service,&hints,&pres ) ) return -1;
int sock=-1;
for( addrinfo *res=pres;res;res=res->ai_next ){
sock=::socket( res->ai_family,res->ai_socktype,res->ai_protocol );
if( sock==-1 ) continue;
if( !connect( sock,res->ai_addr,res->ai_addrlen ) ) break;
::closesocket( sock );
sock=-1;
}
freeaddrinfo( pres );
return sock;
}
This works on windows, macos and linux (ie: I can connect any TCP port 80)
but not emscripten - the connect always fails. Should I revert to the
pre-ipv6 way of connecting? I did give this a quick try but with no luck.
Any clues most welcome!
Bye,
Mark Sibly
--
You received this message because you are subscribed to the Google Groups
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.