| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 网络通信TCP/UDP -> 正文阅读 |
|
[网络协议]网络通信TCP/UDP |
目录 1、TCP 通信cs 模型?socket()函数
返回值:成功返回一个文件描述符,失败返回-1?
bind()函数
通常的做法是:填值的时候使用
sockaddr_in
结构,而作为函数(如
bin, accept, connect
等)的参数传入的时候转换成 sockaddr
结构就行了,毕竟都是
16
个字节长。
listen()函数
connect()函数
accept()函数
recv()函数
send()函数
close()函数
出现的问题解决
1
、头文件
//
转网络字节序的相关头文件不要忘记;
2
、运行顺序
//
先运行服务器,再运行客户端;
3
、三次握手与四次握手;
4
、客户端
bind
()函数作用
//
如果不绑定,系统会自动分配一个端口号;
5
、再次运行可能绑定失败,解决方案:
//
你上次运行程序结束但是端口号没来得及释放;
(ubuntu16)
执行完一次
server
和
client
再次执行可能会出现:
1)
过半分钟运行;
2)
改一个新的端口号;
3)
使用
setsockopt
()函数,取消端口号绑定限.;
2、UDP 通信sendto ()函数
功能:用于
UDP
通信的发送数据
参数:
????????sockfd:文件描述符
????????buf:要写的内容
????????len:要写的长度
strlen(buf);
????????flags:0;
????????dest_addr:发给谁
????????addrlen:结构体长度
返回值:
????????成功:发送的字符数
????????失败:-1
,置错误码
????????返回值:成功返回发送的字节数,失败返回-1
recvfrom()函数
功能:用于
UDP
通信的接收数据
参数:
????????sockfd:文件描述符
????????buf: 接收内容放的缓冲区
????????len:要接收的长度
sizeof(buf);
????????flags: 0;
????????src_addr:保存谁发过来的
????????addrlen:结构体长度地址
返回值:
????????成功:读到的字节数
????????失败:-1
,置错误码
????????返回值:成功返回接收到的字节的个数,失败返回-1
udp
通信是不连接的,不可靠的通信方式。
是一种不建立连接,不能够保证数据无丢失,无重复的通讯方式。
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 5:03:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |