Привет, у меня есть вопрос.
У меня простой сервер, который выглядит следующим образом:
let private Listener ip port =
async {
let listener = new TcpListener(ip, port)
listener.Start()
_logger.Info(printfn "Server binded to IP: %A - Port: %i" ip port)
while listener.Pending() = false do
try
let! client = listener.AcceptTcpClientAsync() |> Async.AwaitTask
clientConnectionPool.Add(client) |> ignore
_logger.Info(printfn "Client connected: %O" client.Client.RemoteEndPoint)
with
| :? ServerListenerException as ex -> _logger.Error(printfn "Exception while starting server listener - %s" ex.Message); ()
}
И это хорошо работает, проблема в том, что теперь я хочу получить IP-адреса клиента, обычно в c # я бы использовал:
((IPEndPoint)entry.Client.RemoteEndPoint).Address
И я верю в F # перевести на:
let clientIp : IPAddress = (client.Client.RemoteEndPoint :> IPEndPoint).Address
Но проблема в том, что я получаю сообщение
Несоответствие ограничения типа. Тип «EndPoint» не совместим с типом «IPEndPoint»
В чем может быть проблема ??