FASt Server - Win32 Socket Library and Tutorial ....

Started by James Ladd, January 15, 2005, 02:41:51 AM

Previous topic - Next topic

James Ladd

Dang !
No feedback. Anyone had a look at the latest and would like to make a comment ?
Rgs striker

mariø

sorry striker,
I have very impressed with the load speed improvements. I will try to take a look to your code...
what is your problem with AcceptEx?

James Ladd

Mario,
Its probably just a silly mistake on may part, trying to use register but incorrectly.
Ill go back to a working snippet of code I have for that part and work through it
slowly. I dont think it will take long to fix, I just need to find the time.

Any other comments ?
As you can see im keen to hear feedback.

rgs striker.

Mark Jones

Lookin' good. I wish I were more versed in MASM32, then I could actually give useful feedback. :)

Echoing bytes sounds like an easy enough task... until you look into the code. There is a reason it is called code... :bdg

I'm an excellent beta reader though, need any tutorials proofed? That I can do. :lol
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

James Ladd

Mark,

Thanks for the comments. When its time to document what i have done to provide more help then
Ill be sure to get you to help proof it.

Ill be trying to fix the AcceptEx bug tonight and continue with development.

rgs, striker.

James Ladd

#65
95% there !!!
Accepting connections and writing the first packet received.
Almost ready to fully read and write which isnt a big step.

Try the latest download.

More when I can, which will hopefully be today.

Mark Jones

Great work, you're almost there! :U

When the time comes and you need a guinea pig IP address running the server, (so you can test it remotely (or vice-versa)), just PM me.

FastServer.exe is a whopping 5k - uncompressed! If they are not already, Apache should be shaking in their boots. :bdg
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

James Ladd

Yes I am almost there. I expect to have it running as an echo server tonight.
So everything you send to it is echoed back to you.
I then need to do some more pooling work and run the scavenger for sockets that are connected but not sending data.
This code is done, but I have to graft it in.

I will make the distributables smaller using the techniques posted here. Like the tiny DLL/EXE stuff.

Thanks for your offer, im sure I will take it up. It wont be long.
It will be nice to have it run remotely. :)

Rgs, striker.

James Ladd

Yet Another Update posted.
Its starting to echo. Just need to keep the loop going.

mariø

Hi striker, just one thing I have seen:
Why dont use directly inmediate values if can?:

        mov [edx].XOVERLAPPED.operation,OPERATION_READ

instead of:

        mov eax, OPERATION_READ
        mov [edx].XOVERLAPPED.operation,eax





sure you have a logical reason that I dont know...

James Ladd

Ill clean up the code at some point when all works. Little things like this are valuable comments.
Thanks for letting me know.  After all, this is my first real assembler program !!!

James Ladd

#71
fastsvr-1.0.0 - THERE IS A WORKING VERSION POSTED

It echoes back the characters you enter.
telnet localhost 9080
starts the ball rolling.

After a while paste in some text from another program and watch how there isnt much of a performance spike.
You have to like non-blocking overlapped IO.

Now Ill add the plugin stuff and clean up the code.
I have to add a socket scavenger and more IO worker threads too.

YAY - Finally a post to say its working :)


Edit - DANG, no replys yet.

Edit - Ok, there seems to be an issue with running on Windows 2000 !  Work ok on XP. Most likely DLL or winsock version stuff.

Mark Jones

Works fine here on XP. :)

Curious, what transport protocol(s) are you planning on supporting?
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

AeroASM

You will have to implement your own protocol when you write the plugin.

James Ladd

I will put together a simple echo plugin and maybe a Http plugin. Since both are very simple
and not very time consuming. I want to do improvements to the server and I am leaving the
protocol stuff to others.

Thanks for trying it out, im glad it works ok on XP for some. I havent tried Win 98 or Server 2003.
Ill try and work out what the issue is with Windows 2000 a.s.a.p

rgs striker.