linux网络编程基本流程
1. 基本概念
说到网络编程,不得不先提到OSI参考模型,其七层模型从下到上分别为
1.物理层(Physical Layer,PH)
2.数据链路层(Data Link Layer,DL)
3.网络层(Network Layer,N)
4.运输层(Transport Layer,T)
5.会话层(Session Layer,S)
6.表示层(Presentation Layer,P)
7.应用层(Application Layer,A)
现在最流行的网络协议无疑就是TCP/IP(Transmission Control Protocol/Internet Protocol)协议.
注:
l IP (Internet Protocol),网际协议;IP是TCP/IP的最底层,高层协议都要转化为IP包,IP包含了源地址和目的地址,路由决策也发生在IP层;
l ICMP (Internet Control Message Protocol),网际报文协议;它包括了数据包的错误、控制等相关信息。比如ping命令就是利用ICMP来测试一个网络的连接情况的工具;
l TCP (Transmission Control Protocol),传输控制协议。TCP运行在IP之上,是基于数据流连接和面向的协议,应用程序把数据要经过TCP/IP的分割成若干包,这样数据就以字节流发送和接收,到达目的地后,TCP/IP再按顺序进行组装。TCP/IP要保证机器与机器之间的连接的可靠性,还要有纠错。TCP是否被选择,取决于应用程序或服务;
l UDP (User Datagram Protocol) ,用户数据报协议 ,象TCP一样运行在IP之上,是基于数据报或分组的协议,UDP/IP可以直接发送和接收数据报文,而不必做验证,这一点与TCP/IP不同。TCP是否被选择,取决于应用程序或服务;
2. 基本接口
以Unix/Linux平台为例,系统会建立许多网络服务程序
$netstat -a
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:1975 : &nb
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
引导 Linux® 系统的过程包括很多阶段。不管您是引导一个标准的 x86 桌面系统,还是引导一台嵌入式的
PowerPC® 机器,很多流程都惊人地相似。本文将探索 Linux
的引导过程,从最初的引导到启动第一个用户空间应用程序。在本文介绍的过程中,您将学习到各种与引导有关的主题,例如引导加载程序、内核解压、初始
RA ......
体验一下linux下编写和使用动态库与静态库,范例:helloworld程序。
首先编写静态库:
hellos.h
#ifndef _HELLO_S_H
#define _HELLO_S_H
void prints(char *str);
#endif
hellos.c
#include "hellos.h"
#include <stdio.h>
void prints(char *str)
{
printf("print in sta ......
装了一个VMWARE,其中运行的是LINUX-FC11。为了能够同Window Host共享文件,打算在Linux上装Samba服务。之前也试着用VMWARE Tools,不过没能成功。说我的FC11有问题。可能是编译环境或者版本的问题。于是用Samba。
用Samba的GUI界面设置了共享目录。可是Windows还是找不到我的共享目录。接着按网上的提示,打开了防火墙将S ......