小编Nol*_*ian的帖子

如何通过HTML5 websocket播放视频块?

假设我有一个ogg视频.我可以这样玩:

<video width="640" height="480">
<source src="myvideo.ogg" type=video/ogg>
</video>
Run Code Online (Sandbox Code Playgroud)

现在如果我设法通过HTML5 websocket流式传输此视频的1ko块编码,我怎么能播放视频?我无法弄清楚这一点.如果需要,我可以解码块.

提前谢谢,Nolhian

html5 base64 chunks video-streaming websocket

7
推荐指数
1
解决办法
1777
查看次数

Scapy SYN发送我们自己的IP地址

我尝试在我的本地网络上发送SYN数据包并使用Wireshark监控它们,一切正常,除非我尝试将数据包发送到我自己的IP地址,它似乎"工作",因为它说发送1数据包,但它是没有真正发送,我看不到Wireshark中的数据包,也没有任何数据包的答案.我的设置是计算机A(192.168.0.1),其中TCP套接字服务器侦听端口40508,计算机B(192.168.0.2).

在计算机B上我测试:

ip=IP(src="192.168.0.2",dst="192.168.0.1")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)
Run Code Online (Sandbox Code Playgroud)

它工作正常,我看到Wireshark上的SYN数据包和192.168.0.1的SYN/ACK响应

在计算机A我测试:

ip=IP(src="192.168.0.1",dst="192.168.0.2")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)
Run Code Online (Sandbox Code Playgroud)

它工作正常,我看到SYN数据包和RST/ACK(没有服务器侦听192.168.0.2上的端口40508,因此它发送RST/ACK)响应来自192.168.0.2

但是当我尝试使用计算机A:

ip=IP(src="192.168.0.2",dst="192.168.0.1")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)
Run Code Online (Sandbox Code Playgroud)

Wireshark中没有任何内容,好像数据包从未发送过,但它像其他测试一样说:发送1个数据包.并且没有任何错误返回.如果我在计算机B上运行相同的测试并尝试将数据包发送到自己的IP地址,我遇到了同样的问题.

对于我的程序,我真的需要将SYN数据包发送到我自己的IP地址,有没有办法做到这一点还是不可能?

提前致谢,

Nolhian

python generator scapy send packet

6
推荐指数
1
解决办法
8646
查看次数

观看房产变更

我需要一个类似于gobject.io_add_watch变量的函数.例如,它需要观察stop初始化的变量stop = False,当停止更改为True必须调用函数时.我不能让一个单独的线程在time.sleep的循环中观察变量.

有这样的功能或方法吗?

python variables watch

6
推荐指数
1
解决办法
3790
查看次数

TCP套接字文件传输

我正在尝试使用Python和AES编写一个安全的传输文件程序,我有一个问题,我不完全理解.我发送我的文件通过解析1024字节块并发送它们但接收数据的服务器端崩溃(我使用AES CBC因此我的数据长度必须是16字节的倍数)并且我得到的错误说它是不.

我试图在客户端打印客户端发送的数据长度和服务器上收到的数据长度,并显示客户端每次都发送正好1024个字节,但是服务器端显示在某个时间点,接收的数据包不是,因此小于1024字节(例如743字节).

我试图在客户端的每个套接字发送之间放一个time.sleep(0.5),它似乎工作.是否可能是服务器端的某种套接字缓冲区故障?太多的数据被客户端发送得太快,并且它在某种程度上破坏了服务器端的套接字缓冲区,因此数据被破坏或消失,而recv(1024)只收到一个破碎的块?这是我唯一能想到的,但这也可能是完全错误的,如果有人知道为什么这不能正常工作会很好;)

按照我的想法,我试过:

    self.s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 32768000)
    print socket.SO_RCVBUF
Run Code Online (Sandbox Code Playgroud)

我试图在服务器端放置32mbytes缓冲区,但在Windows XP上它在打印机上显示4098,在linux上它只显示8.我不知道我必须如何解释这一点,我唯一知道的是它似乎它没有32mbytes缓冲区,因此代码不起作用.

嗯,这是一个很长的帖子,我希望你们中的一些人有勇气把它全部读到这里!我完全迷失在那里如果有人对此有任何想法请分享:D

感谢费萨尔我的代码在这里:

服务器端:(计数是我的文件大小/ 1024)

while 1:
    txt=self.s.recv(1024)
    if txt == " ":
        break       
    txt = self.cipher.decrypt(txt)
    if countbis == count:
        txt = txt.rstrip()
    tfile.write(txt)
    countbis+=1
Run Code Online (Sandbox Code Playgroud)

客户端 :

while 1:
    txt= tfile.read(1024)
    if not txt:
        self.s.send(" ")
        break
    txt += ' ' * (-len(txt) % 16)
    txt = self.cipher.encrypt(txt)
    self.s.send(txt)
Run Code Online (Sandbox Code Playgroud)

提前致谢,

Nolhian

python sockets buffer file-transfer

4
推荐指数
1
解决办法
9144
查看次数

Python:PortAudio + Opus 编码/解码

我正在使用 Pyaudio 从麦克风捕获音频,并尝试使用 opus 编解码器对其进行编码/解码。我正在使用 SvartalF 制作的 libopus 绑定(https://github.com/svartalf/python-opus

这是我的代码:

import pyaudio
from opus import encoder, decoder

def streaming(p):
    chunk = 960
    FORMAT = pyaudio.paInt16
    CHANNELS = 1
    RATE = 48000
    streamin = p.open(format = FORMAT,
            channels = CHANNELS, 
            rate = RATE, 
            input = True,
            input_device_index = 7,
            frames_per_buffer = chunk)
    streamout = p.open(format = FORMAT,
            channels = CHANNELS, 
            rate = 48000, 
            output = True,
            output_device_index = p.get_default_input_device_info()["index"],
            frames_per_buffer = chunk)
    enc = encoder.Encoder(RATE,CHANNELS,'voip')
    dec = decoder.Decoder(RATE,CHANNELS)
    data …
Run Code Online (Sandbox Code Playgroud)

python portaudio pyaudio opus

2
推荐指数
1
解决办法
1万
查看次数

使用前缀时Django Url Dispatcher问题

工作:

urlpatterns = patterns('',
    (r'^$', views.index),
    (r'^test/$|test/(\d+)/$', views.test_page),
    (r'^(name)/$', views.index),
    (r'^(username)/$', views.index),
)
Run Code Online (Sandbox Code Playgroud)

不工作:

urlpatterns = patterns('views',
    (r'^$', index),
    (r'^test/$|test/(\d+)/$', test_page),
    (r'^(name)/$', index),
    (r'^(username)/$', index),
)
Run Code Online (Sandbox Code Playgroud)

错误:

Django Version:     1.3
Exception Type:     NameError
Exception Value:    name 'index' is not defined
Exception Location: /home/nolhian/Documents/Test/../test/urls.py in <module>, line 8
Run Code Online (Sandbox Code Playgroud)

我跟着文档做了这个,我哪里出错了?

django django-urls django-views

1
推荐指数
1
解决办法
339
查看次数