Re: portable socket wrappers
- From: Baurzhan Ismagulov <ibr radix50 net>
- To: gtk-list gnome org
- Subject: Re: portable socket wrappers
- Date: Wed, 4 Jul 2007 17:30:27 +0200
On Wed, Jul 04, 2007 at 05:25:02PM +0200, katsanqat wrote:
> Hmm try this function. For example do a connect() to a server that
> does not exist and check the return value. if it is -1 then connect()
> did not succed. There you throw your super function below:
>
> int ret = connect(sock, (struct sockaddr *)&ServAddr, sizeof(ServAddr));
> if (ret == -1) socket_error("connect");
> ...
> void socket_error(char *msg)
> {
> #ifdef WIN32
> LPVOID lpMsgBuf;
> FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |FORMAT_MESSAGE_FROM_SYSTEM |
> FORMAT_MESSAGE_IGNORE_INSERTS, NULL,WSAGetLastError(), 0, (LPTSTR)&lpMsgBuf,
> 0, NULL);
> char str[1024];
> sprintf(str,"%s : %s", msg, (LPCTSTR)lpMsgBuf);
> LocalFree(lpMsgBuf);
> //MessageBox (NULL,str,"Socket Error",MB_OK | MB_ICONEXCLAMATION);
> printf("%s\n",str);
> #else
> perror(msg);
> #endif
> }
>
> There are other defines needed for example windows is using the type
> SOCKET whereas BSD Sockets use an int.
...
Thanks for the example! This is exactly the reason why I looked for a
library :) . It would cost me and future maintainers of the application
much more to develop that in-house than to learn a new API and regularly
update the library -- you learn and define the process only once.
With kind regards,
--
Baurzhan Ismagulov
http://www.kz-easy.com/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]