【问题标题】:TCP/IP Server-Client Are there data sending limits?TCP/IP Server-Client 是否有数据发送限制?
【发布时间】:2015-08-21 10:20:47
【问题描述】:

我正在写 100-255 之间的数字来控制我的齿轮电机的速度。 (低于 100 则无法运行)。

在我的 UDOO 上,我正在运行用 python 编写的 TCP/IP 服务器代码。它绑定服务器地址,然后监听并接受来自客户端的连接。 它执行一个 while 循环,从 TCP/IP 客户端(我的 iPhone)接收数据,然后将其打印并(串行)写入我的 UDOO 上的 Arduino 芯片。 编辑:这是完整的 Python 服务器代码

import socket
import sys
import serial

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server_address = ('IP', 10000)
print >>sys.stderr, 'starting up on %s port %s' % server_address
sock.bind(server_address)
sock.listen(1)

print >>sys.stderr, 'waiting for a connection...'
connection, client_address = sock.accept()
print >>sys.stderr, 'connection from', client_address
while True:
    data = connection.recv(16)
    print >>sys.stderr, 'received "%s"' % data
    ser.write(data)

我 iPhone 上的 swift 代码使用此命令连接到同一个 IP python 代码正在连接的那个。

NSStream.getStreamsToHostWithName()

加速度计数据使用

写入输出流

outputStream.write(string, maxLength: count(string))

如果我将 iPhone 向右倾斜,齿轮马达的速度会增加。

当 accelerometerUpdateInterval = 1 时,减速电机的速度会延迟 1 秒。 python 服务器代码每秒接收 1 个数据包,并且没有传输错误。显示的数字在 100 到 255 之间。

如果我将加速度计的更新间隔设置为 0.01,python 代码每秒接收 100 个数据包。显示的数字示例如下:

received "198"
received "184"
received "179"
received "196"
received "204"
received "2061991871851851"
received "8217717417718118"
received "5185176169184187"
received "1811401761961901"
received "6213912912712612"
received "2118115114105"
received "1051051001001001"
received "0010010110110110"
received "1101101101101101"
received "1011011011011011"
received "0110110110110110"
received "1101101101101101"
received "1011011011011011"
received "0110110110110110"
received "1"
received "1011011011011011"
received "0110110110110110"
received "1101101101101101"
received "101101"
received "101"
received "101"
received "101"

像 198、184、179 这样的数字是准确的,并且可以正确传输,因为这是我拿着 iPhone 的角度。其他大于 3 位或大于 255 的数字不应该显示,也没有编程创建它们的 swift 代码,当它每秒接收 100 个数据包时,TCP/IP 传输肯定有问题。

当更新间隔为 0.1 时仍有一些问题,但频率较低。

【问题讨论】:

  • 可能是输出跟不上,将值附加到同一行。
  • 是的,类似的。

标签: python swift sockets tcp-ip


【解决方案1】:

像 198、184、179 这样的数字是准确且正确的 因为那是我拿着 iPhone 的角度。这 其他大于 3 位或超过 255 的数字不应该 出现并且没有编程快速代码来创建它们,那里 收到100肯定是TCP/IP传输有问题 每秒数据包数。

毕竟,也许这些数字确实有意义。我只是添加了空格来说明这一点:

received "206 199 187 185 185 1"
received "82 177 174 177 181 18"
received "5 185 176 169 184 187"
received "181 140 176 196 190 1"

【讨论】:

  • 我也认识到了这个事实。当我发送数字“101”时,它被全部推到了一条线上。我相信这些长长的数字串是什么让我的电机表现不正常。这些数字都被同时发送,我想解决这个问题以使我的电机运行顺畅。
猜你喜欢
  • 2012-12-17
  • 2011-09-13
  • 1970-01-01
  • 2016-10-16
  • 2020-06-22
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
相关资源
最近更新 更多