在接收传入的UDP数据时,如何在终端中发送基于键盘输入的Socket数据?按下包含换行符的enter键后,数据将通过套接字发送.

我只有这个最小的UDP服务器:

import socket
SERV_IPV4, SERV_PORT = ("192.168.43.150", 7777)
udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udpSock.bind((SERV_IPV4,SERV_PORT))

while 1:
  dataRecv, CLNT_ADDR = udpSock.recvfrom(1024)
  print(dataRecv, CLNT_ADDR)

我对程序的期望是无关紧要的,就像Netcat命令如何工作:nc -ulp 7777

推荐答案

Use Threading

import socket, threading
SERV_IPV4, SERV_PORT = ("192.168.43.150", 7777)
udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udpSock.bind((SERV_IPV4,SERV_PORT))

dataRecv = ""
CLNT_ADDR = None

def receiveData():
  global CLNT_ADDR
  global dataRecv
  while (1):
    dataRecv, CLNT_ADDR = udpSock.recvfrom(1024)
    print(dataRecv, CLNT_ADDR)

recvThread = threading.Thread(target=receiveData)
recvThread.start()
recvThread.join(0)

while (1):
  dataSend = (input() + "\n").encode()
  print(dataSend)
  udpSock.sendto(dataSend,CLNT_ADDR)

Python相关问答推荐

如何根据情况丢弃大Pandas 的前n行,使大Pandas 的其余部分完好无损

添加包含中具有任何值的其他列的计数的列

我从带有langchain的mongoDB中的vector serch获得一个空数组

将jit与numpy linSpace函数一起使用时出错

如果值不存在,列表理解返回列表

pyscript中的压痕问题

如何让这个星型模式在Python中只使用一个for循环?

Scrapy和Great Expectations(great_expectations)—不合作

什么是合并两个embrame的最佳方法,其中一个有日期范围,另一个有日期没有任何共享列?

Maya Python脚本将纹理应用于所有对象,而不是选定对象

在Admin中显示从ManyToMany通过模型的筛选结果

为什么在FastAPI中创建与数据库的连接时需要使用生成器?

如何使用正则表达式修改toml文件中指定字段中的参数值

从一个df列提取单词,分配给另一个列

什么是一种快速而优雅的方式来转换一个包含一串重复的列,而不对同一个值多次运行转换,

删除特定列后的所有列

ModuleNotFoundError:Python中没有名为google的模块''

我怎么才能用拉夫分拣呢?

为什么我只用exec()函数运行了一次文件,而Python却运行了两次?

无法在盐流道中获得柱子