tcp协议网络编程
1.Wireshark抓包工具:
 ? ? 1.sudo apt-get install wireshark
 ? ? 2.sudo wireshark
 ? ? 3.选择抓取数据包的网卡
 ? ? 4.执行网络程序实现数据通信
2.UDP包头:
 ? ? 8个字节
 ? ? 1.源端口(2个字节)
 ? ? 2.目的端口(2个字节)
 ? ? 3.长度(2个字节)
 ? ? 4.校验码(2个字节)
3.MTU:
 ? ? 最大传输单元
 ? ? UDP MTU 最大为:1500
 ? ? UDP一次发送的数据最大不要超过1500个
TCP编程:
 ? ? 1.通信流程
 ? ? ? 发送端: ? ? ? ? ? ? ? ? ? ? ? 接收端:
 ? ? ? socket ? ? ? ? ? ? ? ? ? ? ? ?socket?
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? bind?
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? listen
 ? ? ? connect ? ? ? ? ? ? ? ? ? ? ? accept?
 ? ? ? send ? ? ? ? ? ? ? ? ? ? ? ? ?recv?
 ? ? ? close ? ? ? ? ? ? ? ? ? ? ? ? close?
? ? 2.函数接口:
 ? ? ? listen?
 ? ? ? int listen(int sockfd, int backlog);
 ? ? ? 功能:
 ? ? ? ? 监听三次握手连接请求
 ? ? ? 参数:
 ? ? ? ? sockfd:套接字文件描述符
 ? ? ? ? backlog:尚未处理的连接请求最大等待个数
 ? ? ? 返回值:
 ? ? ? ? 成功返回0?
 ? ? ? ? 失败返回-1?
? ? ? 注意:
 ? ? ? ? 1.listen不会阻塞
? ? 3.accept
 ? ? ? int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
 ? ? ? 功能:
 ? ? ? ? 处理等待队列中的第一个请求
 ? ? ? 参数:
 ? ? ? ? sockfd:套接字文件描述符
 ? ? ? ? addr:存放请求方地址信息空间首地址
 ? ? ? ? addrlen:请求方地址信息长度
 ? ? ? 返回值:
 ? ? ? ? 成功返回新的文件描述符
 ? ? ? ? 失败返回-1?
? ? 4.recv?
 ? ? ? ssize_t recv(int sockfd, void *buf, size_t len, int flags);
 ? ? ? 功能:
 ? ? ? ? 接收数据
 ? ? ? 参数:
 ? ? ? ? sockfd:套接字文件描述符
 ? ? ? ? buf:存放接收到的数据空间首地址
 ? ? ? ? len:最大接收字节数
 ? ? ? ? flags:属性 默认为0?
 ? ? ? 返回值:
 ? ? ? ? 成功返回实际接收到的字节数
 ? ? ? ? 失败返回-1?
 ? ? ? ? 如果对方退出,recv返回0?
? ? 5.send?
 ? ? ? ssize_t send(int sockfd, const void *buf, size_t len, int flags);
 ? ? ? 功能:
 ? ? ? ? 发送数据
 ? ? ? 参数:
 ? ? ? ? sockfd:套接字文件描述符?
 ? ? ? ? buf:发送数据空间首地址
 ? ? ? ? len:发送字节数
 ? ? ? ? flags:属性默认为0?
 ? ? ? 返回值:
 ? ? ? ? 成功返回实际发送字节数
 ? ? ? ? 失败返回-1?
? ? 6.connect?
 ? ? ? int connect(int sockfd, const struct sockaddr *addr,
 ? ? ? ? ? ? ? ? ? ?socklen_t addrlen);
 ? ? ? 功能:
 ? ? ? ? 发送链接请求
 ? ? ? 参数:
 ? ? ? ? sockfd:套接字文件描述符
 ? ? ? ? addr:对方的IP地址信息
 ? ? ? ? addrlen:IP地址的大小
 ? ? ? 返回值:
 ? ? ? ? 成功返回0?
 ? ? ? ? 失败返回-1?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!