实现环境:真实机器 win10 虚拟机 Ubuntu
win10 代码:
import socket
def fasong():
udpsocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udpsocket.bind(("", 1888))
ip1 = input("输入对方的ip:")
port1 = input("输入对方的端口:")
while True:
recvdata = udpsocket.recvfrom(1024) # win10 机器先收消息再发送
print(recvdata[0].decode())
msg = input("输入要发送的消息:")
if msg == "exit": #这里输入exit 跳出循环,Ubuntu中没写
break
udpsocket.sendto(msg.encode("utf8"),(ip1,int(port1)))
udpsocket.close()
if __name__ == '__main__':
fasong()
Ubuntu 上的代码:
import socket
def fasong():
udpsocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
addr = ("192.168.1.139",8088)
ip1 = input('请输入要发送的ip:')
udpsocket.bind(addr)
port1 = input('请输入要发送的端口号:')
while 1:
msg = input('请输入要发送的消息:')
udpsocket.sendto(msg.encode('utf8'),(ip1,int(port1)))
recvdata = udpsocket.recvfrom(1024)
print(recvdata[0].decode())
udpsocket.close()
if __name__ == '__main__':
fasong()
两个机器上的代码基本相同,思路都是用socket模块创建好套接字。
然后进行消息的收发功能代码。具体效果如下面视频中
(视频还在审核,好了传上来)