python - Python 字符缓冲区
问题描述
在 C 代码中,我编写了一个名为 read_ascii(data, recv_buf, &flag_end) 的子函数,用于将字符从数据读取到缓冲区 recv_buf。在主程序中:
int socket_in , new_sd , cc, go, flag_end;
struct sockaddr_in server , client;
char recv_buf[1024];
cc = sizeof(struct sockaddr_in);
data = accept(socket_in, (struct sockaddr *)&client, (socklen_t*)&cc);
while(1)
{ read_ascii(data, recv_buf, &flag_end);
if (strncmp(recv_buf, "A", 1) == 0)
{
printf ("A");
write(data, "ok", 2);
}
else if (strncmp(recv_buf, "B", 1) == 0)
{
printf ("B");
write(data, "ok", 2);
}
else
{
write(data, "FAIL", 4);
}
}
在 Python中我知道不需要像 C 那样读取字符,我们可以recv_buf = "\0" * 1024
根据this定义 -- 。
但似乎每次我读取 TCP/IP 的值时,recv_buf 缓冲区都会被覆盖
while True:
c, addr = server_tcp.accept() # Establish connection with client.
data = server_tcp.recv(1024)
if 'A' == data
n=server_tcp.send('OK')
elif 'B'== data
n=server_tcp.send('OK')
else:
print ('I did not get the right command DEF')
break
server_tcp.close()
因此,当客户端发送 B 然后发送 A 时,我确实从服务器(好的,好的)得到了我认为的好的答案。任何帮助,将不胜感激。谢谢
解决方案
推荐阅读
- mysql - 在“ALTER TABLE CONTROLDEHORAS ADD IDCLIENTE INT(15) NOT NULL AFTER FIN”语句中的第 154000 行插入 int(15) 列时出现无效日期错误
- html - IOS原生Files App的URL Scheme是什么
- craftcms - 调用未定义的方法 craft\helpers\Stringy::langSpecificCharsArray() Craft 3
- bash - 如何创建 sh 文件以更改目录并执行操作
- excel - 选择工作表后 Range 类的选择方法失败
- flutter - 尝试使用风味时 Flutter 应用程序构建失败
- css - 如何使用 minmax func 来限制列数
- bash - 从 github markdown 编辑器粘贴不同于在其他地方粘贴
- c# - Selenium:等待 UI 中的进度条过程完成(等待进度条可能会因测试而异)
- apache-spark - “每个核心一个执行器与一个具有多个核心的执行器”之间的区别