【问题标题】:Python Socket Programming DetailsPython Socket 编程细节
【发布时间】:2018-03-03 19:58:43
【问题描述】:

我有一个简单的服务器和一个使用 python 的客户端脚本,但我不知道我们究竟在用这些代码做什么。如果您能详细说明以下几行的含义和功能,我将不胜感激:

server.py

import socket

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host = "127.0.0.1"
port = 1234

s.bind((host,port))

那么我们通过socket对象s.bind()做什么呢?绑定是什么意思?

s.listen(1)

现在我们监听连接,但监听的参数是什么意思?设置为最大 5。这个数字的用途是什么?

c,address = s.accept()

现在接受返回一个套接字对象和一个由主机和端口组成的元组,但我不明白的是这个。在客户端中,我们只使用我们创建的套接字对象,但在服务器脚本中,为什么使用“c”对象为客户端执行任务?为什么我们要创建另一个套接字对象?这个“c”和“s”对象有什么区别?

【问题讨论】:

    标签: python sockets


    【解决方案1】:

    你读过socket模块的documentation吗?

    它声明参数是排队连接的最大数量,应该至少为0;最大值取决于系统(通常为 5),最小值强制为 0。

    您没有发布任何特定代码,但 cs 都是 socket 对象。一个用于客户端,一个用于服务器,只是命名约定。

    【讨论】:

    • 我阅读了文档,但不明白排队连接的含义。我知道它们都是套接字对象,我认为您错过了我的问题。我不是要求他们的命名约定。为什么我们在服务器脚本上为客户端创建另一个套接字对象,而在客户端脚本上只有一个套接字对象就足够了
    • 再一次,您没有发布任何客户端代码,那么我们应该如何向您提供有关其工作原理的任何信息?
    • 你熟悉这个话题吗?但无论如何:
    • import socket s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) address = ("127.0.0.1",1234) s.connect(address)
    • 剩下的就是while循环了,现在不重要了
    猜你喜欢
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    相关资源
    最近更新 更多