View Full Version : very simple question
starboarder2001
07-14-2003, 09:25 PM
in c++ what function will return your IP address? I have searched for it but no luck. I figured you guys would know it off the top of your heads.
Dia Kharrat
07-14-2003, 09:53 PM
If you're using windows, you can get your IP address using WinSock. You can't get the IP address in "C/C++". You'll have to use a library.
* * *#include <winsock2.h>
* * *WORD wVersionRequested;
* * *WSADATA wsaData;
* * *char name[255];
* * *CString ip;
* * *PHOSTENT hostinfo;
* * *wVersionRequested = MAKEWORD( 2, 0 );
* * *if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
* * *{
* * * * * *if( gethostname ( name, sizeof(name)) == 0)
* * * * * * * * *if((hostinfo = gethostbyname(name)) != NULL)
* * * * * * * * * * * *ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
* * * * * *
* * * * * *WSACleanup( );
* * *}
don't forget to link with Wsock32.lib
MA]Mestre
07-15-2003, 02:10 AM
if u use apex's code ( into VC6.0 ), and u need #include <windows.h> u must put #include <winsock2.h> before windows include. Otherwise the compiler found data types repeated. ;)
starboarder2001
07-19-2003, 12:12 AM
I have another question.... :)
I am using WinSock.
When i call: recv() it waits at that line until it is sent something. Is there a way i can set the function to time out if nothing is sent after a few secs? I am writing a simple chat program..and i need it to check if something was recieved..and if it didnt then just contenue with the program.
//take input
//send input
//recieve text //i dont need it to wait here until it is sent something :\
//display text
Obunako
07-19-2003, 03:47 AM
Using WSAAsyncSelect u can recive a message to a window procedure when u get some data, or other network event, about u socket. Try to use it !!! :nod:
DrunkenCoder
07-21-2003, 09:28 AM
or have a look at select() ...
vBulletin, Copyright ©2000-2009, Jelsoft Enterprises Ltd.