TCP发送和接收数据包

2024-04-24 04:49:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在准备机器人比赛。我的任务是:

Passenger pick-up and drop-off points are transmitted to the robots in unicast form over the TCP protocol using the wireless IEEE 802.11 b / g / n communication standard. The robot connects to the listening server at 192.168.1.100:9999.

为了实现这一点,我尝试使用以下python代码:

import socket

TCP_IP = '192.168.1.100'
TCP_PORT = 9999
BUFFER_SIZE = 1024

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
data = s.recv(BUFFER_SIZE)
s.close()

print "received data:", data

问题是,我不确定这段代码是否是正确的路径(接收数据包),我无法进行测试。在

如果知道是否有任何TCP数据包发送者到特定的IP和端口,那就太棒了。这样,我就可以测试我是否收到了。请考虑我的任务。在

谢谢你!在


Tags: theto代码ipdatasizeportbuffer
1条回答
网友
1楼 · 发布于 2024-04-24 04:49:33

简单的tcp接收器在python 3中可能如下所示:

import socket

def receiver_tcp(tcp_ip, tcp_port, echo=True, buffer_size=4096):

    with socket.socket(
            socket.AF_INET,  # Internet
            socket.SOCK_STREAM  # TCP
            ) as sock:
        sock.bind((tcp_ip, tcp_port))
        # listening forever
        while True:
            sock.listen()
            conn, addr = sock.accept()
            answer = ''
            # getting and decoding message
            while True:
                answer_part = conn.recv(buffer_size).decode('UTF-8')
                if not answer_part:
                    conn.close()
                    break
                answer += answer_part
            # logging to console
            if echo:
                print(answer)

简单的tcp发送方可能如下所示:

^{pr2}$

您可以在同一台计算机上用python的不同线程运行receiver和sender,也可以使用两台计算机。在

相关问题 更多 >