Delphi Programming question

I can't setup my socket to listen at my IP addres.
I don't know if this is Windows Configuration error or i made error in code.

What i'm doing :
I have single PC with NetworkCard. TCPIP and NetBUI, but Dialup adapter too with different TCPIP settings.
I need write and test InternetWWW server.
I create socket and place to Listen mode, i have message procedure for WM_ASYNCSELECTand I call WSAASyncSelect(..)

but when i run IE3.0 it can't connect to my IP or name.

When I setup socket with :
sin.sin_family := AF_INET;
sin.sin_addr.s_addr := INADDR_ANY;
i can connect only to 127.0.0.1

How can i setup socket to listen on My IP?
LVL 3
mirek071497Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

mirek071497Author Commented:
Adjusted points to 80
0
mirek071497Author Commented:
Adjusted points to 100
0
mirek071497Author Commented:
I run Server and IE3.0 on the same PC. Mayby the problem is here?
0
Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

kimfriisCommented:
This defenatly looks like what you surgestied your self. That you have a dialup adapter with a different IP setting. I have experinced a similar problem, and also when I was just trying to connect to a network. If the dialup adapter had a different setting, then I would not work. Try and set the two things alike, and see if it works, then you will know if that is the problem.
0
mirek071497Author Commented:
I remove Dialup adapter from My System and i have the same problem.
I think so i must made error with usage of socket functions.
Please try find what i'm doing wrong.

When I don't set My IP then i can listen on IP=127.0.0.1
but how can i listen on MyIP;

procedure TSockets.SListen;
var
  iStatus: integer;
  szTcp: PChar;
  szPort: array[0..31] of char;
  szData: array[0..256] of char;
  Phe: PHostEnt;
  szHostName: array[0..128] of char;

begin
  FPort = '80';
  { sin is TSockAddrIn }
  sin.sin_family := AF_INET;
  sin.sin_addr.s_addr := INADDR_ANY;

  { this is for set my IP }
  GetHostName(szHostName,128);
  Phe := GetHostByName(szHostName);
  if Phe <> nil then
    sin.sin_addr.s_addr := longint(plongint(Phe^.h_addr_list^)^);

  { show message for test if correct IP was assigned }
  ShowMessage ( inet_ntoa(sin.sin_addr) );

  szTcp := 'tcp';
  StrPCopy(szPort,FPort);
  Pse := getservbyname(szPort,szTcp);
  if Pse = nil then
    sin.sin_port := htons(StrToInt(StrPas(szPort)))
  else
    sin.sin_port := Pse^.s_port;
  Ppe := getprotobyname(szTcp);

  FMSocket := socket(PF_INET,SOCK_STREAM,Ppe^.p_proto);
  if FMSocket < 0 then
    SocketError(INVALID_SOCKET,'socket',WSAGetLastError);

  iStatus := bind(FMSocket, sin, sizeof(sin));
  if iStatus <> 0 then
    SocketError(FMSocket,'Bind',WSAGetLastError);
  iStatus := listen(FMSocket,5);
  if iStatus <> 0 then
    SocketError(FMSocket,'Listen',WSAGetLastError);
  if FMode = 1 then
  begin
    iStatus := WSAASyncSelect(FMSocket,Handle,WM_ASYNCSELECT,
      FD_READ or FD_WRITE or FD_ACCEPT or FD_CLOSE);
    if iStatus <> 0 then
      SocketError(FMSocket,'WSAASyncSelect',WSAGetLastError);
  end
  else ioctlsocket(FMSocket,FIONBIO,FMode);
end;

0
mirek071497Author Commented:
Adjusted points to 120
0
mirek071497Author Commented:
Adjusted points to 133
0
AJFlemingCommented:
First thing that I can see is that your 'sin' is unsassigned at
the start of the function call... is it global? And if so, are you _Sure_ it's set to something sensible because your GetHostByName() call is going to fall over without a DNS set.

My best bet is that there's a problem with your win setup. Working TCP/IP programming withouth more than 1 mahcine is a real pain in the ass.
0
mirek071497Author Commented:
Hi AjFleming !
thanx for comment. I newbie with server socket programming so if you have time i give you points with A for some talk here.

1.I found so i don't need set my IP and i can't set my IP when i need make connections from more than one networks. Is this correct ?
2.I think so i have error with socket number. Do you know sockets number which is for use with WWW and other ? (some i know i.e. echo=7, mail=25 .... )
3.Can you help me vith basic principies of setting up sockets for servers ?

Regards
Mirek
0
mirek071497Author Commented:
Hi All. I found the solution !

IP is for the wire to host not for the host (example : when you have more than one wires to network you need more than one IP!) and in result I can't call my machine with their IP.
IP 127.any.any.any is for call to local host only and this is the answer.

I wait 3 days to give you time to read this and i delete this question.
0
linda101698Commented:
I'm posting the solution so the answer can be saved in the PAQ.

Hi All. I found the solution !

IP is for the wire to host not for the host (example : when you have more than one wires to network you need more than one IP!) and in result I can't call my machine with their IP.
                     
IP 127.any.any.any is for call to local host only and this is the answer.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
mirek071497Author Commented:
i see so this server have more bugs than Windows95 !
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.