(十三)Packet socket 和 sockaddr_ll】的更多相关文章

描述        本文简单描述了数据链路层的socket使用的两种方法正文     Linux下有两种方式接收数据链路层的数据包:    (1)原始的方法,即创建一个类型为SOCK_PACKET的socket,该方法很普遍,但是缺乏灵活性:    (2)最新的方法,引入了帧过滤功能和性能上的提升,即创建一个指定协议簇为 PF_PACKET的socket,这需要root权限(类似于创建一个raw socket),并且socket的第三个参数必须指定一个以太网帧类型(Ethernet frame…
本文主要来自于linux自带的man packet手冊: http://man7.org/linux/man-pages/man7/packet.7.html 平时常常使用的INET套接字提供的是7层的抓包能力,抓上来的data直接就是tcp或者udp的payload,无需关心L3和L4的头部信息. Packet套接字提供的是L2的抓包能力,也叫raw socket,意思就是不经过操作系统tcp/ip协议栈处理的packet,抓上来的包须要自己处理tcp/ip的头部信息. 眼下使用packet套…
什么是客户/服务器架构? 什么是客户/服务器架构?不同的人有不同的答案.这要看你问的是什么人,以及指的是软件系统还是硬件系统了.但是,有一点是共通的:服务器是一个软件或硬件,用于提供客户需要的"服务".服务器存在的唯一目的就是等待客户的请求,给这些客户服务,然后再等待其它的请求.另一方面,客户连上一个(预先已知的)服务器,提出自己的请求, 发送必要的数据,然后就等待服务器的完成请求或说明失败原因的反馈.服务器不停地处理外来的请求,而客户一次只能提出一个服务的请求,等待结果.然后结束这个…
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监听的ip和端口一致),服务端对客户端进行指定Ip和端口的监听,实现接收客户端发送的数据以及对客户端发送数据. 使用原生socket主要运用到python的socket模块,直接使用自己的代码进行socket对象的创建.ip和端口的绑定.接收和发送数据等操作.服务端:server1.py #incod…
十三.Socket编程实现TCP和UDP 1.TCP (1)TCPServer.java类 package com.interview.javabasic.socket; import com.interview.javabasic.thread.MyThread; import java.net.ServerSocket; import java.net.Socket; public class TCPServer { public static void main(String[] args…
 一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层模型 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 每层运行常见物理设备 详细参考: http://www.cnblogs.com/linhaifeng/articles/5937962.html#_label4 学习socket一定要先学习互联网协议: 1.首先:本节课…
项目总结22:Java UDP Socket数据的发送和接收 1-先上demo 客户端(发送数据) package com.hs.pretest.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class UDPCl…
Socket 网络通信 1.OSI (Open System Interconnect Reference Model)(开放系统互联参考模型) 从下低到高 :物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 2.TCP/IP TCP/IP 是一个协议族,里边包括很多协议,TCP,IP知识两个很重要的协议. TCP(Transmission Control Protocol,传输控制协议) 是面向连接的协议,在收发数据时,都需要与对面建立连接,TCP协议能够确保数据在传输过程中不会遗…
转载:http://hi.baidu.com/zorro_knight/item/37af9e8c9dc71253e73d1924 linux下的socket INADDR_ANY表示的是一个服务器上所有的网卡(服务器可能不止一个网卡)多个本地ip地址都进行绑定端口号,进行侦听. 不光是多个网卡的问题. 见如下server listen: 80           0.0.0.0               //INADDR_ANY,外部的client ask 从哪个server的地址近来都可以…
UDP编程: 将要传输的数据定义成数据包(Datagram),在数据报中指明所要到达的Socket(主机地址和端口号),然后再将数据报发送出去. 相关操作类:     DatagramPacket   数据报包 DatagramSocket   进行端到端通信的类 服务器端实现步骤: 创建DatagramSocket,指定端口号 创建DatagramPacket 接收客户端发送的数据信息 读取数据 客户端实现步骤: 定义发送信息 创建DatagramPacket,包含将要发送的信息 创建Data…