<html><head></head><body style="zoom: 0%;"><div dir="auto">Καλησπέρα,<br><br></div>
<div dir="auto">Δοκίμασε να κάνεις server.bind(('0.0.0.0', port))<br><br></div>
<div dir="auto">Όπου port η θύρα της επιλογής σου. Λογικά θα λύσει το θέμα. Υποθετω πως η μεταβλητή SERVER εχει παρει καποιο ADDR που δείχνει στο local host απο την συναρτηση που το επιστρέφει.<br><br></div>
<div dir="auto">Πρακτικα σε επικοινωνία μεταξύ διαφορετικών μηχανημάτων πρέπει να γίνεται expose το socket σε ip και οχι στο localhost για ειναι προσβασιμο από τον εξω κόσμο. <br><br></div>
<div dir="auto"><!-- tmjah_g_1299s -->--<!-- tmjah_g_1299e --><br></div>
<div dir="auto"><b><font size ="1"><!-- tmjah_g_1299s -->Nikos Provatas<!-- tmjah_g_1299e --></font></b><br></div>
<div dir="auto"><i><font size ="1"><!-- tmjah_g_1299s -->Ph.D. Candidate<!-- tmjah_g_1299e --></font></i><br></div>
<div dir="auto"><i><font size ="1"><!-- tmjah_g_1299s -->Computing Systems Laboratory (CSLab)<!-- tmjah_g_1299e --></font></i><br></div>
<div dir="auto"><i><font size ="1"><!-- tmjah_g_1299s -->National Technical University of Athens<!-- tmjah_g_1299e --></font></i></div>
<div class="gmail_quote" >Στις 6 Ιαν 2021 ,και ώρα 19:30 ,"Σκουρτσίδης Γιώργος" &lt;<a href="mailto:el14307@central.ntua.gr" target="_blank">el14307@central.ntua.gr</a>&gt; έγραψε:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="blue">Πως ακριβώς θα επικοινωνούν μεταξύ τους τα VMs χρησιμοποιώντας sockets; <br>Δοκίμασα επιτυχώς να επικοινωνήσω με τον υπολογιστή μου και το VM που <br>έχει την publc IP.Όμως στην επικοινωνία μεταξύ των VMs λαμβάνω κάποια <br>errors.<br><br>Στην python όταν σε VM χωρίς IPv4 χρησιμοποιώ την εντολή <br>"socket.gethostbyname(socket.gethostname())",η οποία λαμβάνει την ΙΡ του <br>συγκεκριμένου μηχανήματος, λαμβάνω το εξής error "socket.gaierror: <br>[Errno -2] Name or service not known"<br><br>Όταν έχω στήσει ένα δίκτυο ΝΑΤ και τρέχω την ίδια εντολή σε VM χωρίς <br>ΙΡv4,τότε γίνεται κανονικά το bind του socket.Tρέχω τις ακόλουθες <br>εντολές:<br>     PORT = 6000<br>     SERVER = socket.gethostbyname(socket.gethostname())<br>     ADDR = (SERVER, PORT)<br>     server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)<br>     server.bind(ADDR)<br>     server.listen()<br>     print(f"[LISTENING] Server is listening on {SERVER}")<br><br>και η εντολή print εμφανίζει : "[LISTENING] Server is listening on <br><a href="http://127.0.1.1">127.0.1.1</a> "<br><br>Στη συνέχεια όμως όταν προσπαθώ από άλλο Vm να συνδεθώ, τότε λαμβάνω το <br>εξής error :<br>"socket.error: [Errno 111] Connection refused"<br><br>Τι δεν κάνω σωστά; Μήπως αντί για AF_INET θα έπρεπε να χρησιμοποιήσω <br>AF_INET6 χωρίς το δίκτυο ΝΑΤ;</pre></blockquote></div></body></html>