【发布时间】:2020-06-12 21:39:32
【问题描述】:
我正在尝试在 Socket 上使用我的 IPv6 地址,但是当我输入要发送到 IPv6 地址所链接到的设备的文本时,它只会停止并关闭终端。
import sys, os
from socket import socket, AF_INET, SOCK_DGRAM
while True:
SERVER_IP = '[Hidden for security reasons]'
PORT_NUMBER = 5000
SIZE = 1024
print ("Test client sending packets to IP {0}, via port {1}\n".format(SERVER_IP, PORT_NUMBER))
mySocket = socket( AF_INET, SOCK_DGRAM )
myMessage = input('Enter your message: \n')
mySocket.sendto(myMessage.encode('utf-8'),(SERVER_IP,PORT_NUMBER))
clr = os.system('cls')
【问题讨论】:
-
对于初学者,您可能希望将 shell 调用放到
cls以查看如果遇到任何错误会怎样,并从终端调用脚本以观察行为。那么您可能需要检查docs,因为您没有看到的错误可能与尝试使用(此处未显示)AF_INET域的 IPv6 地址(带有两个元组)而不是AF_INET6(有一个四元组)。 -
您想使用
AF_INET6,虽然可以使用2元组,但您可能需要将其扩展为(SERVER_IP,PORT_NUMBER,0,0)。