Jamal Glasgow
Jamal Glasgow

Reputation: 23

SDL Net2 Missing TCP packets

I am using SDL and Net2 lib for a client-server application.

The problem I am facing is that I am not receiving all of my TCP packets from my client unless I place a delay before sending each packet from client.

Removing the delay I get only one packet.

Upvotes: 0

Views: 210

Answers (3)

Bob Pendleton
Bob Pendleton

Reputation: 31

Although it is not guaranteed to be reliable, you most likely want to use UDP, not TCP. Net2 handles UDP very well. UDP is actually very reliable. UDP is message oriented. UDP messages tend to get sent quickly and get special treatment by routers (not always a good thing :-). UDP is often used in games.

BTW, if you had asked this question on the SDL mailing list, or sent it to me directly, you would have gotten this advice many months ago.

I wrote Net2 and I hang out on the SDL list. I do not hang out here because this place is an infinite time sink.

Bob Pendleton

Upvotes: 0

ultifinitus
ultifinitus

Reputation: 1903

Well you're not guaranteed (in regular sockets) to receive all packets at one time, you may have to call your receive function more than once, to receive all data. This is of course depends on your definition of a "packet" are you receiving all of your data?

+1 erik

Upvotes: 0

Erik
Erik

Reputation: 91320

A TCP connection is a stream of bytes. Your client could send 20 packets of 5 bytes each, and the server read it as one 100-byte sequence. You'll need to split the data up yourself.

Upvotes: 3

Related Questions