Socket Send and Receive Thread Safety

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Is it safe for one thread to call Socket.Receive and another to call
Socket.Send on the same Socket at the same time?

The documentation says that instance members are not guaranteed to be thread
safe, but I'm not sure whether this combination is or not.

I've also heard that the send and receive buffers are disparate and can be
accessed simultaneously.
 
Hi,

Just think about it:
You can do it, it's not leagal but how you gurantee that data is sent to
socket in right order ?

For example:

you need to send:
aaaaaa
bbbbb

You call aaaaaa from 1 thread and bbbbbb on another:
what may happen:
aaaaaa
bbbbb
----- all as you excpect

bbbbb
aaaaa
This may happen if bbbbb thread finishes first.

For recieve, you never can be sure what is recieved by one thread and
another.
may happen following situation:
aaaaabbb
bbbb
 
I'm not concerned about simultaneous sends or receives. Let me see if I can
explain it better:

Is it okay to be sending data over a Socket at the same time as data is
being received on it? For example, have one thread that only sends data and
another thread that only reads data without synchronizing access to the
shared Socket. So, one thread calls Socket.Receive at the same time as
another thread calls Socket.Send. Is this okay or not?
 
Back
Top