我试图在Windows下运行以下python服务器:
"""
An echo server that uses select to handle multiple clients at a time.
Entering any line of input at the terminal will exit the server.
"""
import select
import socket
import sys
host = ''
port = 50000
backlog = 5
size = 1024
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host,port))
server.listen(backlog)
input = [server,sys.stdin]
running = 1
while running:
inputready,outputready,exceptready = select.select(input,[],[])
for s in inputready:
if s == server:
# handle the server socket
client, address = server.accept() …Run Code Online (Sandbox Code Playgroud) 我只想确定:如果你想使用谷歌协议缓冲区,我可以找到编译器的二进制文件,但不知何故,似乎我还需要编译剩余的源文件.这是真的?我有一个MinGW c编译器,这样做.有人有make文件吗?
我试图Beep用winsound.Beep命令制造一些噪音。但是,当我使用时,我winsound.Beep(500, 500)听不到任何声音。随着winsound.MessageBeep与winsound.PlaySound不过,我可以玩的声音。任何想法我应该做什么?
我想要做的是:我想为训练间隔编写一个小练习程序:计算机发出第一个音调,然后发出第二个音调,您将不得不猜测音调间隔是什么。为此,我需要音调,我可以设置频率的音调。我想让它尽可能简单,任何高音都可以。我不想收集一组 .wav 文件或其他任何东西。我想使用我认为在大多数声卡上都可以使用的音调发生器。winsound.Beep 似乎可以做到这一点,但欢迎任何其他建议。
我试图将键盘输入与字符串进行比较:
import sys
# read from keyboard
line = sys.stdin.readline()
if line == "stop":
print 'stop detected'
else:
print 'no stop detected'
Run Code Online (Sandbox Code Playgroud)
当我在键盘输入'stop'并输入时,我希望程序打印'stop detected'但它总是打印'no stop detected'.我怎样才能解决这个问题?
在我试图理解的一段代码中,我遇到以下声明:
_RecvBuf[conn] = _RecvBuf[conn][8+msgSize:]
Run Code Online (Sandbox Code Playgroud)
_RecvBuf声明为
_RecvBuf = {}
Run Code Online (Sandbox Code Playgroud)
和msgSize是一个整数.我没有看到这意味着什么,任何帮助?
这是select语句的原型(根据手册页):
int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
struct timeval *timeout);
Run Code Online (Sandbox Code Playgroud)
我知道如何使用readfds参数:使用此参数,您可以看到数据是否已写入您的某个套接字.另一方面,我发现的writefds页面声明这是"如果有任何套接字准备发送()数据到".但是,这是什么意思?在Quin和Shute的Windows套接字网络编程中,它说它检测连接状态或可写状态.这有什么意义?是否只是检查套接字是否仍然连接到已连接的客户端并测试是否有任何用途写入该套接字?
那么:通常使用writefds的是什么?