agiusti
asked on
NetBIOS programming in NT
My first attempt at both NetBios programming and C++, so forgive any implied ignorance.
I'm using Alok Sinha's Network Programming in Windows NT as a guide.
I've written a small application using MVC++ 5.0 and linked it as a DLL. I've attached the DLL to a Paradox application. The purpose of the application is to act as a server and collect status packets (using NetBios Listen/Call/Receive) from several PC clients. The server is running NT Workstation 4.0, and the clients are MS-DOS 6.22.
I have the server application running, and accepting connections and receiving data from a "client" running in a DOS window on the same NT Workstation. My "client" issues an NCB.CALL and is successfully connected to the server application. The "client" issues an NCB.SEND and successfully transmits a data packet to the server application.
Now for my troubles...when I run the "client" application on a DOS machine hooked up to my LAN, I can not get a connection established. My server has issued the NCB.LISTEN command to wait for a NCB.CALL, but the "client" times out without finding the server name. I'm running the identical "client" application on both the DOS window under NT and on the DOS machine.
I know my NT box has NetBEUI successfully installed, because I can connect to it from my DOS machine running MS Workgroup Add-On for DOS. I can also successfully run very similar applications between two DOS boxes.
So my question is, what have I forgotton to do in my Visual C++ library that keeps me from being able to create a NetBIOS session between a DOS machine and my application? I'm anxious to get past this hurdle...any help would be greatly appreciated.
I'm using Alok Sinha's Network Programming in Windows NT as a guide.
I've written a small application using MVC++ 5.0 and linked it as a DLL. I've attached the DLL to a Paradox application. The purpose of the application is to act as a server and collect status packets (using NetBios Listen/Call/Receive) from several PC clients. The server is running NT Workstation 4.0, and the clients are MS-DOS 6.22.
I have the server application running, and accepting connections and receiving data from a "client" running in a DOS window on the same NT Workstation. My "client" issues an NCB.CALL and is successfully connected to the server application. The "client" issues an NCB.SEND and successfully transmits a data packet to the server application.
Now for my troubles...when I run the "client" application on a DOS machine hooked up to my LAN, I can not get a connection established. My server has issued the NCB.LISTEN command to wait for a NCB.CALL, but the "client" times out without finding the server name. I'm running the identical "client" application on both the DOS window under NT and on the DOS machine.
I know my NT box has NetBEUI successfully installed, because I can connect to it from my DOS machine running MS Workgroup Add-On for DOS. I can also successfully run very similar applications between two DOS boxes.
So my question is, what have I forgotton to do in my Visual C++ library that keeps me from being able to create a NetBIOS session between a DOS machine and my application? I'm anxious to get past this hurdle...any help would be greatly appreciated.
I have only used NetBios on NT, but the main problem I faced was that I could not really know what LANA number to use without testing each one until a connection succeeded between the two machines. So either do I send data on every LANA number available (one LANA number is associated with a single network card and a single protocol), or test which one that is connected to the other computer.
ASKER
Actually, that comment helped me find the answer. I didn't realize that there were seperate LANA numbers associated with each protocol on a given card. My NT box has only one network card, so I assumed the LANA number would be zero. When you mentioned the multiple protocol issues, I found that a LANA of 1 matched up with the correct protocol for my card. Thanks!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Is there anybody out there?