CSocket programming dilemna
Jason R. Simpson -- doecreek@tir.com
Tuesday, August 13, 1996
Env: MSVC 1.52c, Windows 95, WFW311, NT351
Earlier I had posted an article concerning two applications using =
CSocket derived classes for communication. The problem was that the =
applications would not run under WFW311 or NT351 but it ran without =
fault under Win95.
I resolved the issue and thought that it wouldn't hurt to post the =
information. Both the client and server application were running on the =
same machine with the ip address 4.3.2.20. The netstat command informed =
me that my client application was trying to connect to 4.3.2.16. =
Internally, in CAsyncSocket::Connect() where the SOCKADDR_IN structure =
is filled in with the appropriate values before the Winsock API =
connect() function is called, inet_addr() is used to convert the ip =
address from the decimal delimited string to the appropriate format. =
Well, if I have a string containing the value 004.003.002.020, =
inet_addr() stores it as 4.3.2.16, but if I have a string containing the =
value 4.3.2.20, inet_addr() stores it correctly. =20
This preplexes me and if anyone has any information on this situation, I =
would like to hear about it. Either way, my problem is resolved, I just =
do not understand the logic of it.
Jason Simpson
TimeTrak Systems, Inc
Port Huron, MI
Rickard Lind -- rickard.lind@st.se
Thursday, August 15, 1996
[Moderator's note: There were 20 responses, all basically the same.]
>Env: MSVC 1.52c, Windows 95, WFW311, NT351
[snip]
>decimal delimited string to the appropriate format. Well, if I have a
string containing the value
>004.003.002.020, inet_addr() stores it as 4.3.2.16, but if I have a string
containing the value
>4.3.2.20, inet_addr() stores it correctly.
>
>This preplexes me and if anyone has any information on this situation, I
would like to hear about it.
>Either way, my problem is resolved, I just do not understand the logic of it.
In C/C++, a number with a leading zero is usually interpreted as an octal
(base 8) number, just as a
leading 0x indicates hexadecimal (base 16). Octal 20 == decimal 16.
>Jason Simpson
>TimeTrak Systems, Inc
>Port Huron, MI
/r
____________________________________________________________
Rickard Lind mailto:rickard.lind@st.se
S&T Datakonsulter http://www.st.se
Valhallav. 191 voice:+46 8 7832714
Box 27183 fax:+46 8 6678230
104 51 Stockholm cell:+46 708 432484
| Вернуться в корень Архива
|