0

我厌倦了 .NET BeginRead、EndRead 的东西。我很想像以前在 Delphi/C++ 中那样使用 WSAAsyncSelect

//Async CallBack handler Declaration
procedure MessageHandler(var Msg:Tmessage);Message WM_WINSOCK_ASYNC_MSG;

//Where i setup the Async
dwError := WSAAsyncSelect(Sock, form1.handle, WM_WINSOCK_ASYNC_MSG, FD_CLOSE or FD_READ);

//Async Callback Handler
procedure Tform1.MessageHandler(var Msg:Tmessage);
begin
  case WSAGetSelectEvent(MSG.LParam) of //LParam is FD_READ/FR_CLOSE/FD_WRITE
    FD_READ: OnSocketRead(MSG.WParam); //WPARAM is the Socket itself.
    FD_CLOSE: OnSocketClose(MSG.WParam);
  end;
end;

是否可以在 C# 中设置该事件?

4

1 回答 1

1

如果我理解正确,您可以使用SocketAsyncEventArgs相同的模式。

于 2009-04-20T08:03:04.253 回答