草庐IT

SYN_RECV

全部标签

python socket recv() 和信号

我有一个简单的(非线程)脚本,它在一个套接字上监听数据、分析它并在内部使用SIGALRM在预定义的计时器内部发送电子邮件。问题是在recv()循环中,SIGALRM的出现引发了一个socket.error:[Errno4]Interruptedsystemcall因此终止程序。我可以用try/exceptblock包装recv(),但我想知道在此期间我是否会丢失任何数据,或者缓冲区是否会防止丢失。s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.bind((host,port))whileTrue:try:data=s.recv(20

python - 处理 python socket recv 的输出

对于菜鸟Python问题深表歉意,但我已经在这个问题上停留太久了。我正在使用python套接字从服务器接收一些数据。我这样做:data=self.socket.recv(4)print"datais",dataprint"repr(data)is",repr(data)控制台的输出是这样的:dataisrepr(data)is'\x00\x00\x00\x01'我想将这个基本上包含4字节数字的字符串转换为int-或者实际上是C中的long。我如何才能将这个数据对象转换为我可以轻松管理的数值? 最佳答案 您可能想使用struct.代码

python - 在 ZeroMQ 中调用 recv_pyobj() 时如何添加主题过滤器?

ZeroMQ提供了关于如何设置pub-subpattern的非常好的文档。使用主题过滤器,如theapidocs中所述.ZeroMQ还为convenience提供了方法socket.send_json()和socket.send_pyobj()(以及recv对应方法).在pub-sub示例中,主题过滤器(一个字符串)附加到消息(也是一个字符串)的开头。使用内置序列化时,有什么方法可以设置主题过滤器吗?如果我使用send_pyobj()发送一个dict或Class,我不能在它前面附加一个字符串。 最佳答案 首先要注意的是,ZeroMQ

python - 创建 word2vec 模型 syn1neg.npy 扩展

创建模型时,已经没有扩展完成的模型了.syn1neg.npysyn0.npy我的代码如下:corpus=x+ytok_corp=[nltk.word_tokenize(sent.decode('utf-8'))forsentincorpus]model=gensim.models.Word2Vec(tok_corp,min_count=1,size=32)model.save('/home/Desktop/test_model')model=gensim.models.Word2Vec.load('/home/kafein/Desktop/chatbot/test_model')只有1

python - paramiko Channel.recv() 究竟是如何工作的?

我很难理解recv()函数的工作原理。http://docs.paramiko.org/en/1.13/api/channel.html#paramiko.channel.Channel.recv我知道每次调用该函数时都会收到一个数据block,但是有人可以详细说明该数据的结构或大小吗?假设我发送了一个命令date,我注意到:第一次阅读得到:“日期”二读得到:实际响应(CDT2014年6月9日星期一12:04:17)第三次阅读得到:提示但这如何处理终端上随机出现的调试信息呢?只要实际响应小于最大字节数(nbytes),前面的模式是否成立?如果超过nbytes会怎样?根据要求,我添加了以

python - 为什么 recv 在接收到所有数据之前不阻塞?

为什么recv系统调用不阻塞直到接收到所有数据?每次我看到recv调用时,它都处于一个while循环中,它一直在调用recv直到所有数据都存在。为什么不首先使用recvblock? 最佳答案 您可以使用MSG_WAITALL标志请求recvblock,直到收到所有数据。但是,如果信号到达,已经执行了一些工作(即接收部分数据)的系统调用不能自动重新启动以接收其余部分。因此,即使使用MSG_WAITALL,在某些情况下recv调用可能会在缓冲区满之前返回,您必须准备好处理这些情况。鉴于此,许多人只是选择循环,而不去理会鲜为人知的标志,例

python - 使用 Vim 的 syn-include 和 syn-region 嵌入语法高亮时出现问题

我试图让Vim以语法高亮任何以扩展名.Rtex结尾的文件,方法如下:所有顶级文本都突出显示为TeX异常(exception):包含在\begin{python}...\end{python}中的任何文本都突出显示为Python我能够单独达到这些标准中的每一个,但无法同时达到这两个标准。我认为TeX突出显示以某种方式覆盖了我的Python突出显示区域,或者阻止它们生效,我一直在试图弄清楚如何。第一步:编辑.vimrc为扩展名为.Rtex的文件指定rtex文件类型:auBufRead*.Rtexsetfrtex第二步:创建~/.vim/syntax/rtex.vim。该文件的内容将决定如何

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

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

go - 尝试 Recv 返回 channel 关闭,尽管它是打开的

我正在尝试在Go中编写一个函数来监视channel并记录通过它发送的内容。funcmonitorChannel(inChannel,outChannelreflect.Value,fidint64,cond*sync.Cond){for{cond.L.Lock()vartoLogreflect.ValuevarokboolfortoLog,ok=inChannel.TryRecv();!toLog.IsValid();{//whilenovaluereceivedif!ok{cond.L.Unlock()return}cond.Wait()}outChannel.Send(toLog)

混帐克隆 : GnuTLS recv error (-9): A TLS packet with unexpected length was received

我正在尝试克隆一个git存储库,但在执行命令时收到以下错误:GnuTLSrecverror(-9):ATLSpacketwithunexpectedlengthwasreceived.我的客户端机器是Ubuntu14.04。 最佳答案 这是@IvanTernovtsiy所说的已知错误,但有解决方法从您的系统中删除当前的GITsudoapt-getpurgegit下载GITdebgit_1.9.1-1_amd64.deblink执行下载的DEB。 关于混帐克隆:GnuTLSrecverro