SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW.

先开个头,有空研究一下这几个定义的区别:SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW.

时间: 2024-08-07 07:20:11

SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW.的相关文章

SOCK_STREAM & SOCK_DGRAM

脑图:socket 从UDP数据报长度说起 UDP属于网络模型中的传输层.下面我们由下至上一步一步来看: 理论上,IP协议允许的最大IP数据包(packet)为2^16=65535(IP包总长为16位): 但是!以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的.这个1500字节被称为链路层的MTU(最大传输单元).但这并不是指链路层的长度被限制在1500字节,其实这个MTU指的是链路层的数据区,而不包括链路层的首部和尾部的18个字节.所以,1500

网络编程--接口函数

1.socket函数 为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型 #include <sys/socket.h> int socket (int family, int type, int protocol); //返回:若成功则为非负描述符,若出错则为-1 其中family指明协议族,type参数指明套接字类型,protocol参数应该设为某个(见下图)协议类型常值,或者设为0,以选择所给定family和type组合的系统默认值 socket

Linux Socket编程-(转自吴秦(Tyler))

"一切皆Socket!" 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. --有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信?

TCP网络程序设计

11.7 创建套接字 11.7.1 函数名 socket 11.7.2 函数原形 int socket(int domain, int type, int protocol); 11.7.3 函数功能 用于创建套接字 11.7.4 所属头文件 #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> 11.7.5 返回值 成功:返回文件fd 失败:-1 11.7.6 参数说明 domain:通信域 AF_INET,

Socket

Socket函数对应于普通文件的打开操作.普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket.这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作. 正如可以给fopen的传入不同参数值,以打开不同的文件.创建socket的时候,也可以指定不同的参数创建不同的socket描述符,socket函数的三个参数分别为: domain:即协议域,又称为协议

冰冻三尺非一日之寒-socket

第八章 Socket语法及相关 SocketServer实现多并发 socket概念: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认. (1)服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状

socket编程及API简介

什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的.    UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议.它是属于TCP/IP协议族中的一种.    这里有一张图,表明了这些协议的关系. Socket在哪里呢?       在上图中,我们没有看到Socket的影子,那么它到底在哪里呢?还是

网络编程常见类型定义

in.h /* Standard well-defined IP protocols. */ enum { IPPROTO_IP = 0, /* Dummy protocol for TCP. */ #define IPPROTO_IP IPPROTO_IP IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */ #define IPPROTO_HOPOPTS IPPROTO_HOPOPTS IPPROTO_ICMP = 1, /* Interne

Socket--模拟聊天

1.网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的和具名的) 远程过程调用(Solaris门和Sun RPC) 但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的.其实TCP/IP协议族已经帮我们解决了这个问