在ASP.NET Core 6.0 Web Api 应用中使用Socket类发送数据,其生命周期是全局单例还是瞬时?
在对接某个老系统时不得不使用Socket方式传输数据并保存,目前实现是
using var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
await socket.ConnectAsync(new IPEndPoint(IPAddress.Parse(socketAddress), port));
socket.Send(byteData);
socket.Shutdown(SocketShutdown.Both);
每次请求都会走上面代码逻辑,但存在一个问题是频繁建立TCP连接和释放,如果做成单例,是否有其他问题?
回答
建议使用 socket 池,可以参考:
- SocketsHttpHandler
- PooledSocket
THE END
二维码