【读书笔记】socket函数

简介: socket函数 简介 应用程序调用socket函数来创建一个能够进行网络通信的套接字。 1 2 3 4 5 /* 头文件 */ #include #include /* 函数原型 */ int socket(int domain, int...

socket函数

简介

应用 程序调用socket函数来创建一个能够进行 网络通信套接字
1
2
3
4
5
/* 头文件 */
#include <sys/types.h>
#include <sys/socket.h>
/* 函数原型 */
int socket( int domain, int type, int protocol);
第一个 参数指定应用 程序使用的 通信协议的协议族,对于TCP/IP协议族,该参数置AF_INET;
第二个 参数指定要创建的 套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM、原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去 封装它,而是由 程序自行处理数据包以及协议首部);
第三个 参数指定应用 程序所使用的 通信协议。此 参数可以指定单个协议系列中的不同 传输协议。在Internet通讯域中,此 参数一般取值为0,系统会根据 套接字的类型决定应使用的 传输层协议。
该函数如果调用成功就返回新创建的 套接字的描述符,如果失败就返回INVALID_SOCKET。(Linux下失败返回-1) 套接字描述符是一个整数类型的值。每个进程的进程空间里都有一个 套接字描述符表,该表中存放着套接字描述符和套接字 数据结构的对应关系。该表中有一个字段存放新创建的 套接字的描述符,另一个字段存放套接字 数据结构地址,因此根据套接字描述符就可以找到其对应的套接字数据结构。每个进程在自己的进程空间里都有一个 套接字描述符表但是套接字数据结构都是在 操作系统内核缓冲里。

创建流套接字的例子

1
2
3
struct protoent *ppe;
ppe=getprotobyname( "tcp" );
SOCKET ListenSocket=socket(PF_INET,SOCK_STREAM,ppe->p_proto);
相关文章
|
7月前
socket字节序转换与地址转换函数记录
【代码】socket字节序转换与地址转换函数记录。
45 0
|
7月前
socket编程之回声服务器函数的陷阱
由connect函数使用不当导致的小错误 话不多说先看代码:
59 0
|
7月前
|
存储 算法 网络协议
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
73 0
|
7月前
011.socket函数错误封装处理
·回顾 在 008.一个简单的网络服务器开发----回声服务器中所实现的服务器功能简单,简单到几乎没有什么错误处理,我们知道,系统调用不能保证每次都成功。如 010所示,如果我们因为自己代码写的有些问题那么光是排查错误就够我们受的了。出错的可能千千万,所以我们必须进行出错处理,这样一方面可以保证我们的程序逻辑正常,另一方面可以迅速定位到故障信息。
72 0
|
7月前
socket编程之 connect()函数
再讲了服务器端的函数调用之后,终于来到了我们的客户端编程了(read/write之后会详细介绍的),客户端编程相较于服务器端来说是非常简单的了,在掌握了服务器端编程之后再看客户端编程就会胸有成竹(只需要在学一个函数即可)。
127 0
|
7月前
socket编程之 accept函数的理解
在进入我们的正题之前,再来复习一波编写服务器的函数流程吧
393 0
|
7月前
|
网络协议 Linux 定位技术
网络编程函数小总结与初识socket
总结服务器端的函数和客户端的函数 再次声明博主写的都是对于linux下的网络编程,没有写关于Windows的网络编程,也许以后会写到。 这里只是总结一下,具体参数的含义等后面的跟新
72 0
|
网络协议
socket编程函数
socket编程函数
38 0
|
网络协议 Unix Linux
Android C++ 系列:Linux Socket 编程(二)网络套接字函数
socket()打开一个网络通讯端口,如果成功的话,就像open()一样返回一个文件描 述符,应用程序可以像读写文件一样用read/write在网络上收发数据,如果socket()调 用出错则返回-1。对于IPv4,domain参数指定为AF_INET。对于TCP协议,type参数指定为 SOCK_STREAM,表示面向流的传输协议。如果是UDP协议,则type参数指定为SOCK_DGRAM,表 示面向数据报的传输协议。protocol参数的介绍从略,指定为0即可。
209 0
|
存储 网络协议 Unix
socket编程相似对象、函数、概念的区别于联系
inet_addr类似于inet_aton,是将以点分开的IP地址字符串转成in_addr对象。