小编Nic*_*s D的帖子

相当于netcat的python

我有一个TCP服务器,需要用Python编写一个客户端。

服务器是使用arduino_uip库的arduino ;服务器代码(几乎)与该库TCP服务器示例相同。使用nc作为客户端,它工作正常。

但是,当我使用python套接字(如本答案所示)与服务器通信时,服务器会在套接字关闭或关闭时挂起。

服务器可能有问题;但是,由于nc作为客户端可以正常工作,所以我的问题是:

什么是这个答案从NC可在连接关机解释服务器挂什么不同/关闭)?

总结什么可行,什么不可行:

  • python客户端&nc -l作为服务器:有效
  • nc作为客户端和arduino服务器:工作
  • python客户端和arduino服务器:挂起服务器

这是客户端代码:

import socket

def netcat(hostname, port, content):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((hostname, port))
    s.sendall(content)
    s.shutdown(socket.SHUT_WR)
    while 1:
        data = s.recv(1024)
        if data == "":
            break
        print "Received:", repr(data)
    print "Connection closed."
    s.close()
Run Code Online (Sandbox Code Playgroud)

编辑:

似乎(Vorsprung的回答让我考虑了!)实际上这是一个计时问题。如果我在上面的代码中在关闭之前添加sleep(0.5),那么一切都很好(例如在netcat中,在我按Ctrl + C之前有手动延迟)。我想我现在必须检查那个arduino库...

python sockets tcp

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

标签 统计

python ×1

sockets ×1

tcp ×1