大佬教程收集整理的这篇文章主要介绍了Netcat在Python中的实现,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果您只使用它是否有效nc
?
我认为您应该尝试一些更简单的方法:
import socket
def netcat(hostname, port, content):
s = socket.socket(socket.AF_INET, socket.soCK_STREAM)
s.connect((hostname, port))
s.sendall(content)
s.shutdown(socket.SHUT_WR)
while 1:
data = s.recv(1024)
if Data == "":
break
print "Received:", repr(data)
print "Connection closed."
s.close()
我shutdown
之所以加入此通话,是因为您的设备可能正在等待您说完数据发送。(这有点奇怪,但是有可能。)
我找到了它并以它为基础,但它开箱即用时却无法正常工作。我的目标也是将其视为程序包而不是命令行实用程序,因此我的代码更改将反映出来。
class Netcat:
def __init__(self,hostname,port):
self.hostname = hostname
self.port = port
def send(self,content):
self.socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.socket.connect((self.hostname,self.port))
self.socket.setblocking(0)
result = '';
read_ready,write_ready,in_error = SELEct.SELEct([self.socket],[],[self.socket],5)
if(self.socket.sendall(content) != NonE):
return
while(1):
buffer = ''
try:
buffer = self.socket.recv(128)
while(buffer != ''):
result += buffer
try:
buffer = self.socket.recv(128)
except socket.error as err:
print (err,type(err))
buffer = ''
if(buffer == ''):
break
except socket.error as err:
print (err,type(err))
if(buffer == ''):
break
return result
50PMA-019 Connection Open
Atten #1 = 63dB
我的代码读取第一行,但是随后出现错误消息,表明连接暂时不可用,并且没有获得第二行。如果我将其更改为阻塞,它只会阻塞并且永远不会返回。有什么想法吗?
以上是大佬教程为你收集整理的Netcat在Python中的实现全部内容,希望文章能够帮你解决Netcat在Python中的实现所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。