小编aha*_*hat的帖子

asyncio 不会通过 tcp 发送整个图像数据

我正在尝试使用带有 TCP 协议的 asyncio 将图像从我的本地计算机发送到云中的计算机。有时我会发送整个图像,有时只发送图像的一部分。

客户代码

import os
os.environ['PYTHONASYNCIODEBUG'] = '1'
import asyncio
import logging

logging.basicConfig(level=logging.ERROR)
async def tcp_echo_client(data, loop):
    reader, writer = await asyncio.open_connection(<ip_addr>, <port>,
                                                   loop=loop)
    print('Sending data of size: %r' % str(len(data)))
    writer.write(data)
    await writer.drain()
    #print("Message: %r" %(data))
    print(type(data))
    print('Close the socket')
    writer.write_eof()
    writer.close()

with open('sendpic0.jpg','rb') as f:
    data=f.read()
loop = asyncio.get_event_loop()
loop.run_until_complete(tcp_echo_client(data, loop))
loop.close()
Run Code Online (Sandbox Code Playgroud)

服务器代码:

import os
os.environ['PYTHONASYNCIODEBUG'] = '1'
import asyncio
import logging

logging.basicConfig(level=logging.ERROR)

async def handle_echo(reader, writer):

    data = await reader.read()
    addr = writer.get_extra_info('peername')
    #print("Received …
Run Code Online (Sandbox Code Playgroud)

python tcp python-3.x python-sockets python-asyncio

5
推荐指数
1
解决办法
1445
查看次数

为什么getaddrinfo有多个结果?

我正在尝试创建一个简单的程序,获取给定某个主机名的IP地址:

我的代码剪辑附在下面:

#include<stdio.h>
#include<stdlib.h>
#include<stdio.h>
#include<netdb.h>
#include<sys/socket.h>
#include<errno.h>
#include<arpa/inet.h>
#include<string.h>
#include<unistd.h>

int main(int argc, char *argv[]) {
    if(argc<2){
        printf("Please provide a hostname.\n");
        exit(1);
    }

    char *hostname = argv[1];
    char ip[100];
    get_ip(hostname,ip);
    printf("%s resolved to %s\n",hostname,ip);
}

int get_ip(char *hostname,char *ip){
    struct sockaddr_in *h;
    int sockfd;
    struct addrinfo hints, *servinfo,*res;
    struct addrinfo *iter;
    int rv;

    memset(&hints,0,sizeof hints);
    hints.ai_family = AF_UNSPEC;
    hints.ai_socktype = SOCK_STREAM;
    if((rv = getaddrinfo(hostname,"http",&hints, &res))!=0){
        fprintf(stderr, "getaddrinfo %s\n",gai_strerror(rv));
        return 1;
    }
    for(iter=res;iter != NULL;iter=iter->ai_next){
      printf("%p\n",iter->ai_next);

       h=(struct sockaddr_in *)iter->ai_addr;
       strcpy(ip,inet_ntoa(h->sin_addr)); …
Run Code Online (Sandbox Code Playgroud)

c linked-list getaddrinfo

4
推荐指数
1
解决办法
2058
查看次数

获取熊猫数据框各列中最后一个非NaN值的行索引

如何为熊猫数据框的每一列返回最后一个非Nan值的行索引位置,并将位置作为熊猫数据框返回?

numpy nan scipy python-2.7 pandas

2
推荐指数
1
解决办法
2878
查看次数