当前位置:  互联网>综合
本页文章导读:
    ▪《TCP-IP详解 卷1:协议》学习笔记(持续更新中)       由于要从事通信协议的开发工作,最近开始学习TCP-IP详解三卷书,希望通过不断的更新博客,同大家共同的学习,相信网络的力量是能够激发人的思维的!   1、如何区别DIXV2帧和IEEE帧? .........
    ▪windows下使用swig      最近上面让学个东西,swig。之前都没请说过,网上搜了搜,说是可以扩展python模块的,整理了下资料1、下载swigwin,解压即可2、编写c++代码如下main.cpp#include<iostream> #include"main.h" us.........
    ▪gensim试用       gensim试用 gensim: http://radimrehurek.com/gensim/index.html Gensim is a free Python framework designed to automatically extract semantic topics from documents, as efficiently (computer-wise) and painlessly (human-wise) as possible. gensim.........

[1]《TCP-IP详解 卷1:协议》学习笔记(持续更新中)
    来源: 互联网  发布时间: 2013-10-26

由于要从事通信协议的开发工作,最近开始学习TCP-IP详解三卷书,希望通过不断的更新博客,同大家共同的学习,相信网络的力量是能够激发人的思维的!

 

1、如何区别DIXV2帧和IEEE帧?

由于二者在同一个局域网内是不能共存的。因此,IEEE允许现存的DIXV2网卡和网络设备到IEEE的标准设备的迁移。为了使设备可以识别使用的是哪种类型的帧,IEEE没有分配1536以下(十六进制为600)的数位协议类型代码。数据字段的最大值为1500字节。所以一台设备可以从源地址后的两个字节来判断是哪种类型的帧,如果值为1536(十进制)或更高则为类型字段,意味着是DIXV2帧,如果从源地址之后的2个字节小于1536,则可确定是长度字段,为IEEE802.3帧

2、TCP四次握手

由于TCP连接时全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN意味着这个方向上没有数据流动,一个TCP连接收到一个FIN后仍能发送数据。一个主动关闭,一个被动关闭。

但为什么连接是三次握手,而关闭是四次握手?

因为服务器端的LISTEN状态下的socket当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK其应答作用,SYN起同步作用)放在一个报文里来发送。

但关闭连接时,当收到对方的FIN报文时,它仅仅表示对方没有数据发送给你了,但未必你所有的数据都全部发送给对方了,所以你可以未必会马上关闭socket,也即你可能还需要发送一些数据给对方,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下是分开发送的。

 

作者:yu_xiaofei 发表于2013-8-28 10:33:02 原文链接
阅读:2 评论:0 查看评论

    
[2]windows下使用swig
    来源: 互联网  发布时间: 2013-10-26

最近上面让学个东西,swig。之前都没请说过,网上搜了搜,说是可以扩展python模块的,整理了下资料

1、下载swigwin,解压即可

2、编写c++代码如下

main.cpp

#include<iostream>
#include"main.h"
using namespace std;

int compute(int a, int b)
{
  return a+b;
}
main.h

#ifndef _main_h_
#define  _main_h_

int compute(int a, int b);
#endif
main.i

%module main
%inline %{
#include "main.h"
%}
int compute(int a,int b);

3、将swigwin主目录添加到环境变量中去,打开cmd 切换到代码所在目录下,执行下面的命令

swig -c++ -python main.i

这时候我们会看到在该目录下生成了两个文件main.py和main_wrap.cxx

4、打开vs2010新建Win32 Console Application工程,选择空项目,Application type选择DLL

5、将我们的main.h 添加到头文件,将 main.cpp main_wrap.cxx 添加到源文件,将main.i添加到工程目录下

6、设置工程目录的属性,在属性页/配置属性/vc++目录 中添加包含目录和库目录 分别为python中的include目录和libs目录

7、编译生成main.dll文件   改名为_main.pyd, 将main.py 和 _main.pyd 文件拷贝到另外一个文件夹test中测试,在test中新建test.py

代码如下

import main
aa = main.compute(5,2)
print(aa)
然后

执行后就可以看到结果

c:\C++>python test.py
7


作者:A8572785 发表于2013-8-28 9:51:11 原文链接
阅读:51 评论:0 查看评论

    
[3]gensim试用
    来源: 互联网  发布时间: 2013-10-26
gensim试用

gensim: http://radimrehurek.com/gensim/index.html

Gensim is a free Python framework designed to automatically extract semantic topics from documents, as efficiently (computer-wise) and painlessly (human-wise) as possible.

gensim安装

sudo apt-get install python-numpy python-scipy

pip install gensim

lsi计算文档相似度

先准备数据,我爬了约2w篇豆瓣日记作为这次试验的数据,数据和代码可以在这里https://github.com/largetalk/yaseg 找到。

主要代码如下:

import jieba
from gensim import corpora, models, similarities
import os
import random
from pprint import pprint
import string
import re

RESULT_DIR = 'douban_result'
regex = re.compile(ur"[^\u4e00-\u9f5aa-zA-Z0-9]")

class DoubanDoc(object):
    def __init__(self, root_dir='douban'):
        self.root_dir = root_dir

    def __iter__(self):
        for name in os.listdir(self.root_dir):
            if os.path.isfile(os.path.join(self.root_dir, name)):
                data = open(os.path.join(self.root_dir, name), 'rb').read()
                title = data[:data.find('\r\n')]
                yield (name, title, data)


class DoubanCorpus(object):
    def __init__(self, root_dir, dictionary):
        self.root_dir = root_dir
        self.dictionary = dic      
    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3