![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
TCP/IP
零丁若叹
这个作者很懒,什么都没留下…
展开
-
tcpdump的使用
tcpdump是ubuntu默认安装的协议转包工具,它必须在root权限下进行。它支持很多的参数,如指定接口,协议等,还可以用于过滤信息。直接使用tcpdump默认抓取所有的协议包,信息过多时很难找到需要的信息,这时可以使用过滤器滤除不必要的信息。tcpdump的命令格式为:tcpdump –c [s数量] [-F文件名] [-i 文件名] [-r文件名] [-w 文件名][表达式原创 2014-01-28 13:06:38 · 884 阅读 · 0 评论 -
建立TCP通信
TCP,传输控制协议,是一种面向连接可靠的传输层协议,面向连接指的是一次正常的TCP传输需要通过在TCP服务器端和客户端之间建立虚电路,TCP客户端和服务端需要建立连接。Winsock C/S模型中服务器的建立过程是1,初始化WSA 2.建立一个SOCKET 3.绑定SOCKET 4指定监听端口,5接受连接,发送接收数据6断开连接这个过程需要用到的API有:1. WS原创 2014-02-07 11:39:44 · 1518 阅读 · 0 评论 -
UDP通信
建立UDP通信,服务器的端的代码如下:#include #include using namespace std;#include #pragma comment(lib,"Ws2_32.lib") void GetIP(void) { char host_name[255]; gethostname(host_name, sizeof(h原创 2014-02-07 18:59:51 · 1097 阅读 · 0 评论 -
socket获取本机IP地址方法
获取计算机的名称和IP地址可以通过调用winsock里面的函数完成,下面上是用到的函数:1.WSAStartup(),此函数在应用程序中初始化windows sockets DLL,这个函数调用成功后,才可以调用其他的api函数。2.WSACleanup()函数,应用程序会占用系统资源,这个函数用来解除与socket的绑定,并且释放占用的系统资源。3.gethostname()用于获...原创 2014-02-07 00:43:33 · 21798 阅读 · 0 评论 -
网络字节顺序(python)
不同的CPU采用的字节顺序可能不一样,常见的有little-endian和big-endian,little-endian是指将低位字节放在前面,高位字节放在后面,big-endian刚好相反。比如存储0x 00 00 01 02,存储位置为 0010到0013,在little-endian的情况下,存储方式为:0010:02 0011:010012:000013:00在b原创 2014-02-15 21:34:51 · 2967 阅读 · 0 评论 -
使用twisted编写服务器
twisted使用异步的方式处理数据,网络中有事件到达时,协议作出对事件的响应,并调用协议里面的方法,比如loseConnection()用于断开连接,abortConection()用于强制终止连接,connectionMade()用于建立连接。使用twisted编写网络编程程序,需要进行一下步骤:(1)定义协议类,它继承自protocol,(2)定义factory类,它用于实例化协议类的对象,原创 2014-02-22 22:39:59 · 1578 阅读 · 0 评论 -
python实现DNS查询
1.DNS查询过程:以查询 www.baidu.com为例(1) 电脑向本地域名服务器发送解析www.baidu.com的请求(2) 本地域名服务器收到请求后,先查询本地的缓存,如果找到直接返回查询结果,如果没有该记录,本地域名服务器把www.baidu.com的请求发送给根域名服务器(3) 根域名服务器收到请求后,把.com域的服务器IP地址返...原创 2014-02-16 15:16:23 · 10783 阅读 · 1 评论 -
python使用select实现异步通信
当一个服务器需要与多个客户端进行通信时,可以使用多进程或者多线程的服务器,也可以使用select模块,它可以实现异步通信。Python中的select模块包含了poll()和select(),select的原型为(rlist,wlist,xlist[,timeout]),其中rlist是等待读取的对象,wlist是等待写入的对象,xlist是等待异常的对象,最后一个是可选对象,指定等待的时间,单位原创 2014-02-22 23:53:23 · 5278 阅读 · 0 评论 -
python中使用POP协议
POP(Post Office Post),邮局协议,采用C/S工作模式,读取电子邮件的过程是先利用DNS协议解析POP服务器的IP地址,并连接服务器,使用USER命令将密码传入POP服务器,使用PASS命令将密码传入POP服务器,这个过程完成后,就完成了POP服务器认证,接下来可以对邮箱内的邮件做进一步的操作,python中的poplib库提供了许多方法,如stat,list等,这些方法可以查看原创 2014-02-23 16:07:57 · 2176 阅读 · 0 评论 -
python实现TCP通信
1.TCP是一种面向连接的可靠地协议,在一方发送数据之前,必须在双方之间建立一个连接,建立的过程需要经过三次握手,通信完成后要拆除连接,需要经过四次握手,这是由TCP的半关闭造成的,一方在完成数据发送后要发送一个FIN来终止这个方向的连接,一个TCP连接在收到一个FIN后仍能发送数据,但应用程序很少这么做,下面是TCP连接建立和拆除的过程:2.python可以实现TCP服务器和客户端的编程,原创 2014-03-01 21:34:20 · 8262 阅读 · 0 评论 -
unix环境编程 tcp通信
TCP通信服务器端程序:原创 2014-06-01 23:12:06 · 1059 阅读 · 0 评论 -
IP地址和子网掩码
A类IP地址 第一个字段的取值范围:0-127 默认的子网掩码:255.0.0.0B类IP地址的第一个字段的取值范围:128-192 默认的子网掩码255.255.0.0C类IP地址的第一个字段的取值范围:193-232 默认的子网掩码 255.255.255.0已知IP地址和子网掩码,用IP地址和子网掩码相与即可得到网络号子网掩码的最后面有几个零,比如n个,即可求出主机数原创 2014-06-22 22:27:46 · 1516 阅读 · 0 评论 -
python实现UDP通信
UDP,用户数据报传输协议,它位于TCP/IP协议的传输层,是一种无连接的协议,它发送的报文不能确定是否完整地到达了另外一端。UDP广泛应用于需要相互传输数据的网络应用中,如QQ使用的就是UDP协议。在网络质量不好的情况下,使用UDP协议时丢包现象十分严重,但UDP占用资源少,处理速度快,UDP依然是传输数据时常用的协议。下面是用python实现UDP服务器的代码:#!/usr/bin/e...原创 2014-02-23 23:25:11 · 40323 阅读 · 7 评论