【Linux 网络编程】常用TCP/IP网络编程函数
(1)函数socket
/****************************************************************
** 功能:创建一个套接字用于通信
** 参数:domain 指定通信协议族
** type 指定socket类型,流式套接字 SOCK_STREAM
** 数据报套接字 SOCKDGRAM
** 原始套接字 SOCKRAW
** protocol 协议类型 (习惯上填写0)
** 返回值:成功返回非负整数,它与文件描述符类似,我们把它称为
** 套接字描述符,简称套接字。失败返回-1;
****************************************************************/
#include <sys/types.h>
#include <sys/socket.h> int socket(int domain, int type, int protocol);
(2)函数bind
/*******************************************************************************
** 功能:绑定一个本地地址到套接字
** 参数:sockfd socket函数要返回的套接字
** addr 要绑定的地址
** addrlen 地址长度
** 返回值:成功返回0,失败返回-1
*******************************************************************************/
#include <sys/types.h>
#include <sys/socket.h> int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
(3)函数listen
/*****************************************************************************
** 功能:将套接字用于监听进入的连接
** 参数: sockfd socket函数返回的套接字
** backlog 规定内核为此套接字排队的最大的连接个数
** 返回值: 成功返回 0 失败返回 -1
**
** (1)一般来说,listen函数应该在调用socket和bind函数之后,调用accept函数之前调用
** (2)对于给定的监听套接字接口,内核要维护两个队列
** <1>已由客户发送并到达服务器,服务器正在等待完成对应的TCP三次握手过程
** <2>已经完成连接的队列
**
******************************************************************************/
#include <sys/types.h>
#include <sys/sock.h> int listen(int sockfd, int backlog);
(4)函数accept
/*********************************************************************************
** 功能:从已经完成连接队列返回第一个连接,如果已经完成连接队列为空,则阻塞
** 参数: sockfd 服务器套接字
** addr 将返回对等待的套接字地址
** addrlen 返回对等方的套接字地址长度
** 返回值:成功返回非负整数 ,失败返回-1
*********************************************************************************/
#include <sys/types.h>
#include <sys/scoket.h> int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
(6)函数connet
/***********************************************************************************
** 功能:用于建立与指定socket的连接
** 参数:sockfd 标识一个未连接的socket
** addr 指定要连接套接字的sockaddr结构体的指针
** addrlen sockaddr结构体的字节长度
***********************************************************************************/
7 #include <sys/types.h>
#include <sys/socket.h>
9
int connect(int sockfd, const strcut sockaddr *addr, socklen_t addrlen);
【Linux 网络编程】常用TCP/IP网络编程函数的更多相关文章
- iOS网络协议 HTTP/TCP/IP浅析
一.TCP/IP协议 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电 ...
- 对TCP/IP网络协议的深入浅出归纳
前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...
- 转:对TCP/IP网络协议的深入浅出归纳
转自:http://blog.jobbole.com/74795/ 前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没 ...
- 对TCP/IP网络协议的深入浅出归纳(转)
前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...
- TCP/IP网络协议的通俗理解,SOCKET,HTTP,SOAP
TCP/IP,HTTP,SOAP等协议之区别 术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议.“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络.把IP想 ...
- UNIX环境高级编程——TCP/IP网络编程 常用网络信息检索函数
UNIX环境高级编程——TCP/IP网络编程 常用网络信息检索函数 gethostname() getppername() getsockname() gethostbyname() ...
- 嵌入式linux的网络编程(1)--TCP/IP协议概述
嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...
- TCP/IP网络编程 读书笔记1
本篇主干内容是TCP/IP网络编程1-9章学习笔记 1. linux文件描述符 描述符从3开始以由小到大的顺序编号,0,1,2,分配给标准I/O用作标准输入.标准输出和标准错误. 2. 协议族与套接字 ...
- 浅谈TCP/IP网络编程中socket的行为
我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) 2. Socket I/O系统 ...
随机推荐
- 实现自己的SpringMVC
一.SpringMVC的工作原理 SpringMVC流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherServlet收到请求调用HandlerMa ...
- php项目权限系统设计
原文地址:https://blog.csdn.net/u013090676/article/details/77893237 说起php的权限,很多人都容易想起rbac,这里不多介绍.下面介绍一种通用 ...
- 安卓 API 19 低版本设置自带的圆圈效果
在 Android API 19 环境下,RadioButton 消除或者自定义自带的圆圈效果的形式来设置: 自定义自身选择图标 android:button="@drawable/sele ...
- TCP之连接的建立和终止
1. 连接的建立 TCP 连接建立的三次握手 如上图所示,TCP 连接的建立会发生如下述情形: 服务器必须准备好接受外来的连接.这通常通过调用 socket.bind 和 listen 这 3 个函数 ...
- Nginx-rtmp之 AMF0 的处理
1. 综述 当检测到接收到的 RTMP 消息中 Message Header 中 message type id 为 20 时,表示,接收到的是 AMF 类型的数据, 因此需要对接收的数据进行 AMF ...
- jdk git maven Jenkins的配置
前言 搭建Jenkins的笔记. JDK 1. jdk 下载地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-down ...
- python内存泄露memory leak排查记录
问题描述 A服务,是一个检测MGR集群主节点是否发生变化的服务,使用python语言实现的. 针对每个集群,主线程会创建一个子线程,并由子线程去检测.子线程会频繁的创建和销毁. 上线以后,由于经常会有 ...
- linux读xml文件问题
由于从配置文件中读取到的路径名的最后多了个0x0A,害我折腾了半天. 提示也很奇葩: I/O warning : failed to load external entity 关键是从这个提示看不出是 ...
- LC 962. Maximum Width Ramp
Given an array A of integers, a ramp is a tuple (i, j) for which i < j and A[i] <= A[j]. The ...
- APT软件包管理-在线安装
APT (Advanced Packaging Tool高级软件包工具) 是一个强大的包管理系统,而那些图形化程序如 添加/删除 应用程序 都是建立 在它的基础之上的.有了dpkg后,Debian再次 ...