Python:如何使用 Ubuntu Mate 创建超过 2 RPi 的简单聊天

标签 python networking

我正在尝试在 2 RPI3 之间开始聊天,完全,如图所示 https://www.raspberrypi.org/learning/networking-lessons/lesson-1/worksheet/

  1. 两台设备都有唯一的 IP,并且能够成功相互 ping 通。
  2. 两台设备均成功运行 chat.py(一台作为服务器 chat.py,一台作为客户端 chat.py 192.168.0.2

但是在每个终端上输入的文本不会通过。

有什么想法吗?

这是 chat.py 代码:

import network
import sys

def heard(phrase):
  print("them:" + phrase)

if (len(sys.argv) >= 2):
  network.call(sys.argv[1], whenHearCall=heard)
else:  
  network.wait(whenHearCall=heard)

while network.isConnected():
  #phrase = raw_input() #python2
  phrase = input() # python3
  print("me:" + phrase)
  network.say(phrase)

最佳答案

服务器文件:

import socket

def Main():
host = "127.0.0.1"
port = 5000

mySocket = socket.socket()
mySocket.bind((host,port))
mySocket.listen(2)
conn, addr = mySocket.accept()
print ("Connection from: " + str(addr))
varz=["var1","var2","var3"]
while True:
        data = conn.recv(1024).decode()
        if data in varz[0] :
           print("YES!")
        print(data.split(' '))
        if not data:
                break
        print ("from connected  user: " + str(data))

        data = str(data[0:2]).upper()
        print ("sending: " + str(data))
        conn.send(data.encode())

conn.close()

if __name__ == '__main__':
  Main()

客户端文件:

import socket

def Main():
    host = '127.0.0.1'
    port = 0


    mySocket = socket.socket()
    mySocket.connect((host,5000))
    user1=input("type usename:") 
    message = input("%s: "%user1)

    while message != 'q':
            mySocket.send(message.encode())
            data = mySocket.recv(1024).decode()

            print ('Received from server: ' + data)

            message = input("%s: "%user1)

    mySocket.close()

  if __name__ == '__main__':
   Main()

关于Python:如何使用 Ubuntu Mate 创建超过 2 RPi 的简单聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45149743/

相关文章:

python - 如何在 CKAN 扩展中自定义 authz.py 文件?

networking - 在不违反任何大规则的情况下进行 DDoS 实验的简单方法是什么?

security - 网络安全

linux - Azure - 无法从公共(public) ip 访问 VM

java - 无法从输入流读取字节数据

ssl - javax.net.ssl.SSLException : No PSK available. 无法恢复

Python:pickling locals(),或者 locals 有一个更轻量级的表兄弟吗?

python - 如何在 Python 中使用 pandas 满足特定条件后删除观察结果

javascript - 如何渲染JS为cookie生成指纹?

python - socket.shutdown 与 socket.close