草庐IT

socket_handle

全部标签

python - socket编程时如何区分tcp/udp

以下是python套接字片段:importsocketsocket.socket(socket.AF_INET,socket.SOCK_STREAM)我的问题是:是否将通过TCP/IP传输套接字连接的线路状态?到目前为止,我只使用上面的代码编写TCP连接,但我可能没有意识到这一点。我可以使用python套接字对UDP连接进行编程吗?如何区分传输层?这个问题与python没有严格的联系,也欢迎用c++或其他任何方式进行解释。 最佳答案 第二个参数决定套接字类型;socket.SOCK_DGRAM是UDP,socket.SOCK_STR

python - jupyter 抛出错误 : socket. gaierror: [Errno -2] Name or service not known

我在AWSEMR上运行一个pyspark集群,并将Jupyter用于pyspark驱动程序。最近,脚本失败了。Jupiter无法启动服务器。我使用condainstalljupyter安装并使用sudoinitctlstartjupyter启动。集群运行良好。这是服务器的配置值。#jupyterconfigsmkdir-p~/.jupytertouchls~/.jupyter/jupyter_notebook_config.pyHASHED_PASSWORD=$(python-c"fromnotebook.authimportpasswd;print(passwd('$JUPYTER_

Python/sockets/ssl EOF 发生违反协议(protocol)

我想在我的echo客户端/服务器程序中对客户端的服务器进行身份验证。我正在使用python2.7.12和ssl模块开启DistributorID:UbuntuDescription:Ubuntu14.04.5LTSRelease:14.04Codename:trusty我使用openssl命令生成了客户端和服务器的证书和key:opensslreq-new-x509-days365-nodes-outclient.pem-keyoutclient.keyopensslreq-new-x509-days365-nodes-outserver.pem-keyoutserver.keyope

python - 为什么 (Py)ZeroMQ 打开那么多 Unix socket 文件?

我试图用lsof-U|监控打开的Unixsocket文件的数量。wc-l当我执行这段代码时:>>>importzmq#1375Unixsocketfiles>>>c=zmq.Context()#1377Unixsocketfiles>>>s=c.socket(zmq.PUSH)#1383Unixsocketfiles>>>s.close()#1381Unixsocketfiles>>>c.destroy()#1375Unixsocketfiles这是为什么呢?我希望在连接套接字时打开TCP/IPC套接字文件,但在连接之前这些文件怎么办?看起来它们都是“STREAM”类型:更新请参阅@g

python - 接口(interface)错误 : Unable to acquire Oracle environment handle; ORACLE_HOME is correct and SQL*Plus will connect

我在尝试导入cx_Oracle时收到标准的“DLL加载失败;找不到模块”错误。我安装了正确的即时客户端,路径都是正确的...运行DependencyWalker告诉我我缺少以下.dllMSVCR90、GPSVC、IESHIMS。我正在运行Oracle11g和Python2.7的即时客户端。有人有想法么?我发现的大多数答案都包含不正确的路径,但情况似乎并非如此……此外,我在系统的其他任何地方都找不到这些.dll中的任何一个。编辑:我最终安装了OracleXE11g(32位);Python2.7和cx_Oracle也是32位的(我还应该补充说我在Windows上)。cx_Oracle现在安

Python `socket.getaddrinfo` 需要 5 秒大约 0.1% 的请求

在与各种网络服务通信的Django项目上运行Python,我们遇到一个问题,即偶尔请求花费大约5秒而不是通常的我已将其缩小到socket.getaddrinfo函数所花费的时间-当我们连接到外部服务时,它被requests调用,但它也出现影响到集群中Postgres数据库框的默认Django连接。当我们在部署后重新启动uwsgi时,第一个进入的请求将需要5秒来发送响应。我还相信我们的celery任务通常需要5秒,但我还没有向它们添加statsd计时器跟踪。我已经写了一些代码来重现这个问题:importsocketimporttimeitdefsingle_dns_lookup():st

python Fabric : How to handle arbitrary remote shell prompt for input?

这与此有关question在这里,但有一点点变化:我需要Fabric将任意字符串传递到远程shell,而不是仅仅传递"is"或“否”。例如,如果远程shell提示“你叫什么名字?”然后我需要“先,后”喂它。澄清:我知道我说的是任意输入,但我真的是tryingtouseitfortheSSHkeypasswdpromptwhenItrytodoagitpull.更新#1:得到JeffForcier@bitprophet的回复that’slikethe#1wartrightnow:(Eithertunnellingtosendakeyagentout-of-band,orremotepro

python - 如何停止 python socket.accept() 调用?

我是python套接字的新手,对socket.accept()方法的顽固性感到非常困扰。我真的需要一种方法来结束socket.accept()方法或仅运行一次的socket.accept()的任何其他替代方法。 最佳答案 这里有几个选项:从另一个线程关闭监听套接字-accept()将在失败时引发异常。打开到监听套接字的本地连接-这使得accept()按设计返回。使用一种可以阻塞多个同步对象的接受机制,以便等待可以在没有连接的情况下收到返回信号。使用accept()的非阻塞替代方案(异步,如AcceptEx()和Windows上的重叠

python - 我能否使 socket.makefile 具有与常规文件相同的读取语义?

Python文件对象有一个read方法,它接受一个可选的大小参数,它基本上是要返回的最大字节数。例如:fname="message.txt"open(fname,"w").write("HelloWorld!")printopen(fname).read()#printstheentirefilecontentsprintopen(fname).read(5)#print"Hello"printopen(fname).read(99)#prints"HelloWorld!"因此,即使我们的文件少于99个字符,调用read(99)也会立即返回所有可用数据。我想在从socket.makef

python - 如何从 Python 中的另一个线程中止 socket.recv()

我有一个等待连接的主线程。它生成客户端线程,这些线程将回应来自客户端(在本例中为telnet)的响应。但是说我想在一段时间后关闭所有套接字和所有线程,比如在1个连接之后。我该怎么做?如果我从主线程执行clientSocket.close(),它不会停止执行recv。只有当我首先通过telnet发送内容时它才会停止,然后它会在进一步发送和接收时失败。我的代码是这样的:#EchoserverprogramimportsocketfromthreadingimportThreadimporttimeclassClientThread(Thread):def__init__(self,clie