我会尽力帮助您翻译以下内容,涉及到IT技术。如果我理解错了,请您指正。
我试图让客户端保持活动状态并等待服务器的连接。目前,如果我在服务器之前打开客户端,它将失败,因为客户端找不到服务器连接并停止运行。我看到过类似的主题,但它们是针对C#和Java的。由于我是新手,请大家帮忙 :)
客户端代码:
#!/usr/bin/env python
import pyaudio
import socket
import sys
import time
# Pyaudio Initialization
chunk = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 10240
p = pyaudio.PyAudio()
stream = p.open(format = FORMAT,
channels = CHANNELS,
rate = RATE,
input = True,
frames_per_buffer = chunk)
# Socket Initialization
host = ''
port = 50000
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
# Main Functionality
while 1:
data = stream.read(chunk)
s.send(data)
s.recv(size)
服务器代码:
#!/usr/bin/env python
import pyaudio
import socket, ssl
import sys
# Pyaudio Initialization
chunk = 1024
p = pyaudio.PyAudio()
stream = p.open(format = pyaudio.paInt16,
channels = 1,
rate = 10240,
output = True)
# Socket Initialization
host = ''
port = 50000
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
client, address = s.accept()
# Main Functionality
while 1:
data = client.recv(size)
if data:
# Write data to pyaudio stream
stream.write(data) # Stream the recieved audio data
client.send('ACK') # Send an ACK
client.close()
stream.close()
p.terminate()
还有一个问题,如果要使用远程连接而不是本地连接运行相同的程序,我应该使用什么类型的协议-python扩展?非常感谢:)