I’m learning socket programming and I have the following function:
public void OnDataReceived(IAsyncResult asyn)
and this is how the callback gets set:
pfnWorkerCallBack = new AsyncCallback(OnDataReceived);
The problem is I need to pass another argument to OnDataReceived callback function, how can I do this? I’m trying to make a simple tcp server and I need to track from which client the data is coming from. Any tips? Thanks!
I’m going to presume you’re using
System.Net.Sockets.Sockethere. If you look at the overloads of BeginReceive you’ll see theobjectparameter (named state). You can pass an arbitrary value as this parameter and it will flow through to yourAsyncCallbackcall back. You can then acess it using theAsyncStateproperty ofIAsyncResultobject passed into your callback. Eg;