问题标签 [python-sockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
967 浏览

python - 如何使 TCPServer 多处理

我正在使用 TCPHandler 处理来自客户端套接字的 TCP 请求,但是在使用多线程时遇到了性能问题,代码片段如下:

上面的代码是multipleThreading,怎么转换成multipleProcessing。

0 投票
1 回答
1750 浏览

python - Python sock.recv 没有从页面获取所有数据

这对我学习如何进行低级套接字通信来说是非常困难的一步,但我真的很想学习这个,我遇到了困难,我似乎无法找到正确的方式。

我怎样才能获得所有数据?我已经尝试了多种方法,但只能得到部分响应。

我现在正在尝试的 URL 是:

经过研究,我尝试了这种方式,但仍然无法打印上面的完整 JSON 页面,我做错了什么吗?

0 投票
1 回答
171 浏览

python - Python:等待“子进程终止”或“新连接”

我需要实现这样的事情:

但是我需要不仅在每次新连接之后调用该restore()函数,而且在 p 死后立即调用该函数。

我可以通过做“阻止”我的程序等待 p 死亡p.wait(),但同时我也想阻止我的程序等待新的连接。

换句话说,我需要阻止我的程序,直到这两个条件之一为真:“p dies”或“new connection”。

我知道我可以select用来等待两个文件描述符,但我不知道在这种情况下该怎么做。

谢谢

0 投票
0 回答
195 浏览

python - httplib.HTTPSConnection() 上次创建的连接多长时间

我需要使用 Python 和 httplib 库从我在 Parse.com 中设置的项目中检索数据。由于我的公司防火墙规则,不能使用更流行的“httplib2”、“requests”和“urllib2”库。

关于 httplib 和 HTTPSConnection 的几个问题:

  1. 何时conn = httplib.HTTPSConnection("api.parse.com", 443)调用,conn会话中的最后一个持续多长时间?
  2. conn = httplib.HTTPSConnection("api.parse.com", 443)每次需要打电话都需要先打电话conn .request('GET')吗?
  3. 由于我在代理后面并且网络状况不稳定,因此socket.gaierror errno 11004 getaddrinfo failed偶尔会引发异常导致GET/POST失败。如何检查连接是否因网络问题而断开或丢失?
0 投票
6 回答
50526 浏览

python - python 套接字 GET

从堆栈溢出的其他帖子中,这应该可以工作

但由于某种原因,它只是挂起(at recv)并且从不打印。我知道对 www.cnn.com 的请求会对其数据进行分块,但我至少应该从中读取一些内容recv,对吗?

ps 我知道这不是最好的方法,而且那里有类似的图书馆httpliburllib2但我不能将它们用于这个项目(它是给学校的)。我必须使用socket图书馆

0 投票
2 回答
349 浏览

python - 为什么在 socket.recv() 之后永远不会到达 break 语句

我编写以下代码来接收数据,然后将数据写入文件。

我的问题是:我发现 if 分支(“ if not data: break ”)永远不会被执行,1)。为什么永远无法到达 if 分支?2)。我的代码如何退出 while 循环?

0 投票
1 回答
1226 浏览

python-3.x - 异步套接字读取器返回空字节

我正在尝试编写一个简单的爬虫。但是尝试从服务器读取响应仅在第一次返回答案。然后阅读器停止读取字节并返回 b''。我试着在写完后设置一个超时并使用 drain() 。它没有产生结果。Wireshark 显示答案来自服务器,但我的程序看不到它们。

0 投票
0 回答
91 浏览

python - 如何在不在同一网络上的两台不同机器之间打开 ssh 隧道?

我尝试了以下代码:

但我得到了错误:

它是我的wan ip:78.163.XX.XX,我打开了一个 ssh 端口(22)和普通端口(4444),并internal ip (192.168.2.50)从我的调制解调器接口重定向到我的。但我仍然无法打开不在同一网络上的两台不同计算机之间的 ssh 隧道。
我怎么解决这个问题?或者我的问题是什么?任何想法?
此外,如果我在本地尝试 host=socket.gethostname(),它可以正常工作。但它不能在同一网络 pc 上工作。
先感谢您..

0 投票
2 回答
9093 浏览

python - 何时/为什么使用 s.shutdown(socket.SHUT_WR)?

我刚开始学习python网络编程。我正在阅读 Python 网络编程基础,无法理解 s.shutdown(socket.SHUT_WR) 的用法,其中 s 是套接字对象。这是使用它的代码(其中 sys.argv[2] 是用户想要发送的字节数,四舍五入为 16 的倍数):

这是作者提供的解释,我很难理解:

其次,您将看到客户端在完成发送传输后对套接字进行了shutdown() 调用。这解决了一个重要问题:如果服务器将永远读取直到它看到文件结尾,那么客户端如何避免必须对套接字执行完整的 close() 并因此禁止自己执行许多 recv( ) 调用它仍然需要进行以接收服务器的响应?解决方案是“半关闭”套接字——即永久关闭一个方向的通信,但不破坏套接字本身——这样服务器就不能再读取任何数据,但仍然可以将任何剩余的回复发送回另一个方向,仍然是开放的。

我对它将做什么的理解是,它将阻止客户端应用程序进一步发送数据,因此也会阻止服务器端进一步尝试读取任何数据。

我无法理解的是为什么在这个程序中使用它以及在什么情况下我应该考虑在我的程序中使用它?

0 投票
1 回答
609 浏览

python - 我的 python 套接字脚本有什么问题?

我写了一个简短的类来帮助我测试向我正在处理的服务器发送纯文本 http 请求,但是我用它发出的所有请求都没有通过,甚至对我的服务器以外的域的请求也是如此。所有请求都超时。该类只是 python 的 socket 模块的包装器。有趣的是,这门课几个月前还可以正常工作。从那以后我就没有碰过代码。

资源:

这是我用来测试它的脚本,做了一些修改。我一直试图发出的实际请求是对我的实时服务器的,请求在浏览器中和 python 的请求库中工作。出于隐私原因,我无法在此处列出。下面的请求也会超时。

测试脚本:

任何帮助表示赞赏。谢谢!

编辑

超时在 getResponse() 的 try/except 块中被捕获。输出如下所示: