我有两台相邻的笔记本电脑,想在它们之间发送消息,我发现当客户端和服务器位于同一台计算机上时代码可以工作,但当它们分开时它就不起作用。
#SERVER
import socket
def Main():
host = "localhost"
port = 5000
mySocket = socket.socket()
mySocket.bind((host,port))
mySocket.listen(1)
conn, addr = mySocket.accept()
print ("Connection from: " + str(addr))
while True:
data = conn.recv(1024).decode()
if not data:
break
print ("from connected user: " + str(data))
data = str(data).upper()
print ("sending: " + str(data))
conn.send(data.encode())
conn.close()
if __name__ == '__main__':
Main()
#CLIENT
import socket
def Main():
host = '0.0.0.0'#127.0.0.1
port = 5000
mySocket = socket.socket()
mySocket.connect((host,port))
message = input(" -> ")
while message != 'q':
mySocket.send(message.encode())
data = mySocket.recv(1024).decode()
print ('Received from server: ' + data)
message = input(" -> ")
mySocket.close()
if __name__ == '__main__':
Main()
我尝试了许多不同的地址,包括 0.0.0.0、localhost、192.168...
您需要告诉客户端您的网络上服务器的地址和端口。您还需要告诉服务器要监听哪个地址和端口。
为了方便起见,让我们绑定服务器的所有 IP 地址。为此,请将服务器代码中的主机设置为“0.0.0.0”
对于客户端配置,您必须输入服务器的地址。为此,我将在服务器代码中放置一行以显示该计算机的主机名。
#SERVER
import socket
def Main():
host = "0.0.0.0"
port = 5000
print socket.gethostname()
mySocket = socket.socket()
mySocket.bind((host,port))
mySocket.listen(1)
conn, addr = mySocket.accept()
print ("Connection from: " + str(addr))
while True:
data = conn.recv(1024).decode()
if not data:
break
print ("from connected user: " + str(data))
data = str(data).upper()
print ("sending: " + str(data))
conn.send(data.encode())
conn.close()
if __name__ == '__main__':
Main()
#CLIENT
import socket
def Main():
host = #put hostname here
port = 5000
mySocket = socket.socket()
mySocket.connect((host,port))
message = input(" -> ")
while message != 'q':
mySocket.send(message.encode())
data = mySocket.recv(1024).decode()
print ('Received from server: ' + data)
message = input(" -> ")
mySocket.close()
if __name__ == '__main__':
Main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)