大佬教程收集整理的这篇文章主要介绍了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()
@H_616_11@我
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
@H_616_11@50PMA-019 Connection Open Atten #1 = 63dB
@H_616_11@我的代码读取第一行,但是随后出现错误消息,表明连接暂时不可用,并且没有获得第二行。如果我将其更改为阻塞,它只会阻塞并且永远不会返回。有什么想法吗?
大佬总结
以上是大佬教程为你收集整理的Netcat在Python中的实现全部内容,希望文章能够帮你解决Netcat在Python中的实现所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。