【问题标题】:Best way to open a socket in Python在 Python 中打开套接字的最佳方法
【发布时间】:2010-09-09 06:52:35
【问题描述】:

我想在 Python 中打开一个 TCP 客户端套接字。我是否必须经历所有低级 BSD create-socket-handle / connect-socket 的东西,还是有更简单的单行方式?

【问题讨论】:

标签: python networking tcp


【解决方案1】:

在 python 中打开套接字非常简单。你真的只需要这样的东西:

import socket
sock = socket.socket()
sock.connect((address, port))

然后你可以像任何其他套接字一样 send()recv()

【讨论】:

    【解决方案2】:

    好的,这段代码成功了

    s = socket.socket()
    s.connect((ip,port))
    s.send("my request\r")
    print s.recv(256)
    s.close()
    

    很难从 Python 套接字模块文档中解决这个问题。所以我会接受 The.Anti.9 的回答。

    【讨论】:

    • 为了将来参考,使用大于 256 字节的 socket.recv() 参数通常是合理的做法。我经常看到使用 4096。
    • 是的,好主意 junkforce。我真正想要的是读取一行文本,我现在使用 makefile() 函数来缓冲接收到的数据,这很有效。
    • 你忘记检查send的返回值了。
    • 对于未来的读者:更好地使用s.sendall(根据@Jean-PaulCalderone 的评论)
    【解决方案3】:

    对于使用 Python 开发任何类型的可移植网络程序,Twisted 非常有用。它的好处之一是在低级套接字 API 之上提供了一个方便的层。

    【讨论】:

    • 扭曲 = 矫枉过正
    猜你喜欢
    • 1970-01-01
    • 2015-01-07
    • 2013-10-25
    • 2018-05-17
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    相关资源
    最近更新 更多