Ich bin im Moment folgende Cloud-Haskell tutorial und ist bei createTransport
stecken. Es scheint mir, dass ich nur einen Transport bei 127.0.0.1 für den Server öffnen kann und keinen Transport für den Client öffnen kann, um eine Verbindung zum Server herzustellen. Ich habe versucht, zwei Maschinen zu verwenden, zu verwenden, um meine IP-Adresse zu erhalten, createTransport
würde jedoch keinen Transport für mich erstellen. Irgendwelche Ideen?Wie verwende ich createTransport?
EDIT: lokal jetzt funktioniert.
Mein Programm ist genau das gleiche wie das Tutorial, versuchen, zwischen zwei Computern zu verbinden:
curl ifconfig.me
kehrt 101.119.27.24
Befehlszeile für Server:
ServerClientServer 101.119.27.24 9000
Fehler zurückgegeben:
bind: unsupported operation (Cannot assign rerquested address)
EDIT: Der Server-Code ist wie folgt:
main :: IO()
main = do
[host, port] <- getArgs
serverDone <- newEmptyMVar
Right transport <- createTransport host port
Right endpoint <- newEndPoint transport
forkIO $ echoServer endpoint serverDone
putStrLn $ "Echo server started at " ++ show (address endpoint)
readMVar serverDone `onCtrlC` closeTransport transport
Die echoServer
und onCtrlC
Funktionen definiert sind in einem anderen Modul.
änderte ich den Right transport <- createTransport host port
in
t <- createTransport host port defaultTCPParameters
let transport = case t of
(Right t) -> t
(Left e) -> error $ show e
so dass ich, was ist die Fehlermeldung sehen.
Können Sie uns Code zur Verfügung stellen, der nicht wie erwartet funktioniert? Wie wäre es mit 'createTransport iNADDR_ANY" 3000 "defaultTCPParameters'? –
Mit welchem Backend arbeiten Sie? Das letzte Mal, als ich das Projekt hier benutzt habe, war ein Backend für das lokale Netzwerk. Seitdem habe ich eine Peer-to-Peer-Version auf dem Hack und ein oder zwei andere gesehen. – Davorak
Backend wie im Paket? Netzwerk-Transport-tcp-0.3.1 – HHC