如何使用socket.connect?

用户名

我是python和网络领域的新手。我应该输入什么地址和端口s.connect另外,我是否在中正确使用了变量s.connect

import socket
recAddress = input("What is the address of the receiver of your messages?")
recPort = input("What port is the receiver using?")
def mysend(sock, msg):
    totalsent = 0
    while totalsent < MSGLEN:
        sent = sock.send(msg[totalsent:])
        if sent == 0:
            raise RuntimeError("socket connection broken")
        totalsent = totalsent + sent

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

s.connect((recAddress, recPort))

i = 2
mysend(s, str(i))
阿巴内特

由于评论中解释的原因,我不会回答关于“我如何知道要传递给该程序的IP和端口”这个模糊的问题。

但是对于有关您的代码的特定问题:

另外,我是否在s.connect中正确使用了变量?

差不多,但是不完全是。

您得到的值是这样的:

recAddress = input("What is the address of the receiver of your messages?")
recPort = input("What port is the receiver using?")

假设这是Python 3.x,input返回一个字符串。但是connect(对于IPv4连接)要求端口而不是字符串。因此,您必须将其转换到某个地方。

您可以在输入时立即执行以下操作:

recPort = int(input("What port is the receiver using?"))

…或者您可以在connect通话中做到

s.connect((recAddress, int(recPort)))

如果该假设是错误的,并且您使用的是Python 2.x,input则将尝试评估输入字符串,这意味着您将获得…的数字,recPort但是您就读错了recAddress,除非您想强制使用用户在IP地址周围加上引号。

通常,您几乎永远不会使用inputraw_input而是调用它,并且如果执行该操作,则会得到一个字符串,并且所有内容都与我上面针对Python 3.x所述的内容完全相同。


最后,一些注意事项:

与其显式创建一个IPv4套接字并对其进行调用connect,通常不如调用create_connection这样,如果以后再切换到兼容IPv6的网络,则程序仍可以正常运行(只要用户为您提供一个IPv6地址或一个解析为一个的DNS地址)。

sendall套接字上方法已经完成了您似乎正在尝试使用mysend功能手动进行的操作尽管有时send像这样进行显式遍历有时会很有用(例如,如果您要调试错误,则意味着您可以准确指出问题出在哪里),通常,使用起来更简单send all

同样,在该循环中,您使用的是常量MSGLEN,您没有在任何地方定义它,这显然行不通。而且,即使你没有地方定义它,你会想要什么发生,如果len(msg)是不一样的MSGLEN例如,如果MSGLENis4msgis '2'(如您的示例),它将发送2个字节,然后继续尝试一次又一次发送0个字节。或者,如果MSGLEN1不过msg'42',它会误导发送2个字节,而不是1。最有可能的,你想用len(msg)在那里,没有MSGLEN

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

模拟“ socket.socket.connect”方法以断言使用给定参数调用它,同时保持功能

来自分类Dev

模拟“ socket.socket.connect”方法以断言使用给定参数调用它,同时保持功能

来自分类Dev

如何激活iTunes Connect?

来自分类Dev

使用Stripe Connect的步骤

来自分类Dev

使用Connect上传文件

来自分类Dev

使用Stripe Connect的步骤

来自分类Dev

如何在connect中使用expressjs?

来自分类Dev

如何使用 Apache HttpComponents Client 请求 CONNECT

来自分类Dev

var socket = io.connect('http:// yourhostname /');?

来自分类Dev

Android蓝牙socket.connect()失败

来自分类Dev

使 zmqpp::socket::connect 成为 std::future

来自分类Dev

如何确认Docusign Connect事件

来自分类Dev

使用OpenID Connect与IdentityServer 2

来自分类Dev

通过Internet使用KDE Connect

来自分类Dev

尝试进行socket.Connect时收到Socket Exception 10054

来自分类Dev

socket.connect() 和 socket.open() 的区别

来自分类Dev

如何隐藏“不推荐使用:mysql_connect()”警告?

来自分类Dev

重复使用connect()时如何提高效率?

来自分类Dev

如何使用PowerMock测试方法Jsoup.connect(静态)?

来自分类Dev

如何在iTunes Connect中使用TestFlight获取崩溃报告?

来自分类Dev

connect()-IP被阻止,如何使用主机名进行连接?

来自分类Dev

如何在DBI-> connect的参数中使用空格?

来自分类Dev

如何在*:CONNECT:mirc脚本上使用if语句

来自分类Dev

Flutter oAuth:如何开始使用OAuth和Stripe Connect

来自分类Dev

如何使用本地身份帐户启用OpenID Connect流?

来自分类Dev

如何使用g_signal_connect传递整数

来自分类Dev

如何在.connect()方法中使用paramiko.PKey()?

来自分类Dev

如何隐藏“不推荐使用:mysql_connect()”警告?

来自分类Dev

20.04 如何在ubuntu中使用adobe connect?

Related 相关文章

  1. 1

    模拟“ socket.socket.connect”方法以断言使用给定参数调用它,同时保持功能

  2. 2

    模拟“ socket.socket.connect”方法以断言使用给定参数调用它,同时保持功能

  3. 3

    如何激活iTunes Connect?

  4. 4

    使用Stripe Connect的步骤

  5. 5

    使用Connect上传文件

  6. 6

    使用Stripe Connect的步骤

  7. 7

    如何在connect中使用expressjs?

  8. 8

    如何使用 Apache HttpComponents Client 请求 CONNECT

  9. 9

    var socket = io.connect('http:// yourhostname /');?

  10. 10

    Android蓝牙socket.connect()失败

  11. 11

    使 zmqpp::socket::connect 成为 std::future

  12. 12

    如何确认Docusign Connect事件

  13. 13

    使用OpenID Connect与IdentityServer 2

  14. 14

    通过Internet使用KDE Connect

  15. 15

    尝试进行socket.Connect时收到Socket Exception 10054

  16. 16

    socket.connect() 和 socket.open() 的区别

  17. 17

    如何隐藏“不推荐使用:mysql_connect()”警告?

  18. 18

    重复使用connect()时如何提高效率?

  19. 19

    如何使用PowerMock测试方法Jsoup.connect(静态)?

  20. 20

    如何在iTunes Connect中使用TestFlight获取崩溃报告?

  21. 21

    connect()-IP被阻止,如何使用主机名进行连接?

  22. 22

    如何在DBI-> connect的参数中使用空格?

  23. 23

    如何在*:CONNECT:mirc脚本上使用if语句

  24. 24

    Flutter oAuth:如何开始使用OAuth和Stripe Connect

  25. 25

    如何使用本地身份帐户启用OpenID Connect流?

  26. 26

    如何使用g_signal_connect传递整数

  27. 27

    如何在.connect()方法中使用paramiko.PKey()?

  28. 28

    如何隐藏“不推荐使用:mysql_connect()”警告?

  29. 29

    20.04 如何在ubuntu中使用adobe connect?

热门标签

归档