Re: Socket Send and Receive Thread Safety

Tech-Archive recommends: Speed Up your PC by fixing your registry

From: Ivar (ivx_at_lumisoft.ee)
Date: 02/22/05


Date: Tue, 22 Feb 2005 12:17:42 +0200


> Is this okay or not?
Yes, then no problem.

"Nizar" <Nizar@discussions.microsoft.com> wrote in message
news:FB1871A0-F98A-43C7-99D9-613566AC8CCC@microsoft.com...
> 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?
>
> "Ivar" wrote:
>
>>
>> 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
>>
>>
>> "Nizar" <Nizar@discussions.microsoft.com> wrote in message
>> news:E365972C-6186-4705-A734-E285B073FE30@microsoft.com...
>> > 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.
>>
>>
>>



Relevant Pages

  • Re: Socket Send and Receive Thread Safety
    ... Is it okay to be sending data over a Socket at the same time as data is ... > For recieve, you never can be sure what is recieved by one thread and ... >> safe, but I'm not sure whether this combination is or not. ...
    (microsoft.public.dotnet.framework)
  • Re: Socket Send and Receive Thread Safety
    ... it's not leagal but how you gurantee that data is sent to ... For recieve, you never can be sure what is recieved by one thread and ... > Socket.Send on the same Socket at the same time? ... > safe, but I'm not sure whether this combination is or not. ...
    (microsoft.public.dotnet.framework)
  • Re: receiving data over socket
    ... I want to print the data the server received. ... anyone can recommend a good VB2005 book that deals with socket programming I ... if your server needs to support multiple connections ... You aren't guarenteed to recieve all your data ...
    (microsoft.public.dotnet.languages.vb)
  • Simple local network messaging.
    ... very simple application to send text messages over a local network. ... socket classes seem fairly straight forward. ... My early prototype had one program to send messages and one to recieve ... do this however I am thinking about converting it to a TCP socket ...
    (comp.lang.ruby)
  • TCP Quirk?
    ... I noticed that when I use send method on a "Socket" object twice, ... corresponding "socket" on the other application fails to recieve it. ... Client:= recieves a byte array from server using recieve ... connection: A connection attempt failed because the connected party did ...
    (microsoft.public.win32.programmer.networks)