网络编程(华清远见内部培训资料)

地址结构的一般用法 定义一个struct sockaddr_in类型的变量并清空 struct sockaddr_in myaddr; memset(&myaddr, 0, sizeof(myaddr)); 填充地址信息 myaddr.sin_family = PF_INET; myaddr.sin_port = htons(8888); myaddr.sin_addr.s_addr = inet_addr(“00”); 将该变量强制转换为struct sockaddr类型在函数中使用 bind(listenfd, (struct sockaddr*)(&myaddr), sizeof(myaddr)); unsigned long inet_addr(char *address); address是以’\0’结尾的点分IPv4字符串。该函数返回32位的地址。如果字符串包含的不是合法的IP地址,则函数返回-1。例如: struct in_addr addr; addr.s_addr = inet_addr(" 00 "); char* inet_ntoa(struct in_addr address); address是IPv4地址结构,函数返回一指向包含点分IP地址的静态存储区字符指针。如果错误则函数返回NULL 地址转换函数 listen int listen (int sockfd, int backlog); sockfd:监听连接的套接字 backlog 指定了正在等待连接的最大队列长度,它的作用在于处理可能同时出现的几个连接请求。 DoS(拒绝服务)攻击即利用了这个原理,非法的连接占用了全部的连接数,造成正常的连接请求被拒绝。 返回值: 0 或 -1 完成listen()调用后,socket变成了监听socket(listening socket). accept() int?accept(int?sockfd,?struct?sockaddr?*addr, socklen_t?*addrlen) ; 返回值:已建立好连接的套接字或-1 头文件 #include #include ? sockfd : 监听套接字 addr : 对方地址 addrlen:地址长度 listen()和accept()是TCP服务器端使用的函数 int new_accepted_fd = accept (listen_fd, (struct sockaddr *) client_addr, 指针: 接收连接的sockaddr_in结构体的长度 一个新的已连接的socket (-1 if error) 接受客户连接的socket, 即 listening socket client_addr_length); 接收外来连接的地址信息,如果不关心,可置为NULL accept ( ) 函数 connect() int?connect(int?sockfd,?struct?sockaddr?*serv_addr, int?addrlen); 返回值:0 或 -1 头文件: #include #include ? sockfd : socket返回的文件描述符 serv_addr : 服务器端的地址信息? addrlen : serv_addr的长度 connect()是客户端使用的系统调用。 int status = connect (socket_fd, (struct sockaddr *) &addr, sizeof(addr)); struct sockaddr结构, 描述服务器的端口和 IP 地址 struct sockaddr 结构的字节长度 return code (-1 if error) socket_fd returned by socket() system call connect( ) 函数 send() ssize_t send(int socket, const void *buffer, size_t length, int flags); 返回值: 成功:实际发送的字节数 失败:-1, 并设置errno 头文件: #include buffer : 发送缓冲区首地址 length : 发送的字节数 flags : 发送方式(通常为0) int status = send (socket_fd, out_buffer, MAX_BUFFER_SIZE, 0); return code (-1 if

linux网络编程 华清,网络编程(华清远见内部培训资料).ppt相关推荐

  1. 华清远见嵌入式培训---入学

    读者们好,我是华清的一名学员,去年9月报名参加了华清远见的培训,因为本人大四还没有毕业,一直在学校上线上课程,今年2月才加入到了线下班级,在这里想谈一下来到华清半个多月的感受. 首先说一下我为什么培训 ...

  2. Linux安全培训 ppt,腾讯内部培训资料linux安全基础ppt课件

    腾讯内部培训资料linux安全基础ppt课件 (20页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 根据三原色原理叠加后的单色形成了第三 ...

  3. 【华清远见嵌入式培训】网络编程(更新中)

    Pre-learning:网络编程 不借助第三方软件实现不同主机.不同操作系统之间的通信.搭建服务器与客户端. Chapter 1 网络发展史与背景 1.1 网络发展简史 ARPnet(阿帕网)因为没 ...

  4. linux内核培训广州,嵌入式Linux驱动开发高级培训班-华清远见嵌入式培训中心

    课程目标 本课程以案例教学为主,系统地介绍Linux下有关FrameBuffer.MMC卡.USB设备的驱动程序开发.参加本课程学习的学员,因为具备了Linux设备驱动开发基础,所以本课程针对性较强, ...

  5. 华清远见嵌入式培训_第五周回顾与反思

    前言 这是在华清学习的第五个周末,这一周主要学习的是数据结构.老师说数据结构是一门非常庞大的学科,单单是数据结构里的一个小分支,单拎出来一周都未必可以学透,因此这周的数据结构课程里更多的是思维方向的学 ...

  6. 华清远见嵌入式培训_第四周回顾与反思

    目录 前言 周二 Linux命令拓展 1 软件安装相关的命令 1.1 离线安装命令--dpkg 1.2 在线安装命令--apt-get 2. 归档和拆包的命令(tar)(重点) 3. 文件操作相关的命 ...

  7. 华清远见嵌入式培训_第一周回顾与反思

    目录 第一天 周二 1.1 Linux系统的使用 1.2 终端 1.3 Linux系统命令 1.4 vi编辑器的使用 第二天 周三 2.1 顺利进入("hello world")阶 ...

  8. 华清远见嵌入式培训_第三周回顾与反思

    目录 前言 周一 一.函数 1.1 指针函数 1.2 函数指针 1.3 函数指针数组(了解) 1.4 指向函数指针数组的指针(了解) 二.typedef 2.1 typedef的使用 2.2 type ...

  9. 华清远见嵌入式培训_第六周回顾与反思

    目录 前言 周二 IO简介和标准IO 一.IO简介 1.1 什么是IO 1.2 IO的分类 1.3 什么是系统调用和和库函数 1.4 什么是IO接口 二.标准IO 2.1 fopen/fclose函数 ...

最新文章

  1. sass文件编译的三种方式【舒】
  2. AtomicLong和LongAdder的区别
  3. A Way to implement Abstract Class In Flex
  4. 客户端远程连接Oracle数据库
  5. 一个肥皂泡的破灭(组图)
  6. android settheme不起作用,android-主题,样式和别名嵌套不起作用
  7. 阿里妈妈大规模在线分层实验实践
  8. zbb20170919 设置eclipse myeclipse 在工程窗口 项目目录 显示代码错误提示的
  9. python3修改文件内容_使用python 修改文件内容
  10. [教程]黑莓终极中文混刷教程 终身受用
  11. PyQt5 QThread应用
  12. 灵长类动物手臂的计算模型:从手部位置到关节角度、关节扭矩和肌肉力
  13. 企业 SDLC 安全生命周期管理
  14. TLV自定义通信协议的编码和解析
  15. JS节点操作、节点层级获取
  16. VMware安装后界面显示为英文
  17. python的使用方法图解_python开发之IDEL(Python GUI)的使用方法图文详解
  18. python+webdriver学习鼠标键盘事件以及定位元素
  19. 3DsMax安装教程
  20. 短视频发展高峰论坛召开 爱奇艺号开放打通短视频创作、分发、货币化中枢

热门文章

  1. 有关int,Int32的疑惑解答
  2. PPT中如何找到字母上面带尖/冒的符号
  3. 【蓝桥杯java真题】:和尚挑水
  4. 彩色日志,教你配置颜色分明的日志输出。
  5. gdal_遥感影像配准
  6. Failed to register bundle identifier. The app identifier “xxx” cannot be registered to your developm
  7. 安装Python出现LookupError: unknown encoding: GB2312错误的解决方法
  8. EF Core 既生,何生
  9. python3+正则(re)增量爬虫爬取笔趣阁小说( 斗罗大陆IV终极斗罗)
  10. antd组件DatePicker日期国际化错误 中英文都存在问题处理