面试了8家软件公司测试岗位,面试题大盘点,我真的尽力了。

2023-05-16

项目的测试流程

  1. 拿到需求文档后,写测试用例

  2. 审核测试用例

  3. 等待开发包

  4. 部署测试环境

  5. 冒烟测试(网页架构图)

  6. 页面初始化测试(查看数据库中的数据内容和页面展示的内容是否一致,并且是否按照某些顺序排列)

7 .具体执行测试用例(几乎所有的功能测试、流程法、场景法)

  1. 发现缺陷就要再填写缺陷表

  2. 非功能性测试(sql、js注入、页面效率、绕过js验证直接添加数据到数据库)

  3. 书写最终的测试报告

测试用例设计方法

等价类、边界值、正交试验法、状态迁移法、因果图、场景测试法、异常分析法、因果图、错误猜测法、判定

测试用例的要素

Id 主题 测试名称 创建日期 设计者 描述 步骤名 步骤描述 预期结果 执行状态

测试的优先级

  1. 先测试经过变更的部分,然后测试没有变更的部分

  2. 先测试程序的核心功能,然后测试一般功能

  3. 先测试逻辑性的功能,然后测试业务性的功能

  4. 先测试常规情况,然后测试异常情况

  5. 先测试功能,然后测试性能

测试报告包含哪些内容

1.写测试背景

2.测试目标

3.测试范围

4.测试环境

5.测试数据

6.测试标准(重点)

7.测试进度

8.测试结果

9.测试结论

有的公司会采用非标准的测试报告

大致会包含 测试所用时间 测试环境 测试人员 测试发现bug数量 已修复bug数量 遗留bug 遗留bug原因

BUG的生命周期

提交–开发验证–接受–拒绝–开发解决–测试人员验证–关闭–不通过打开

BUG的状态

  1. NEW:所有提交到开发对接的问题状态为NEW,表示为未处理

  2. OPEN:开发对接人初判为需流转问题,指定测试人员和开发人员,状态为OPEN。

  3. REFUSE:开发对接人判断为不需要流转至下环节的问题,状态为REFUSE,并且填写原因

  4. FIXED:开发人员完成修复,待测试,状态为FIXED

  5. REOPEN:测似人员针对开发人员的修复结果测试部通过,状态为REOPEN

  6. CLOSE:测试人员判断问题为需求或其他问题,需填写原因;

缺陷的要素

缺陷标题 缺陷状态 提交人 负责人 优先级 严重程度 缺陷描述 时间 截图

缺陷的级别

致命问题 核心功能不可用或系统崩溃

严重问题 业务主要流程无法使用,业务主要流程中的某个功能存在缺陷导致主要流程无法继续使用

一般问题 一般性问题,非主要流程上的功能缺陷

轻微问题 界面ui问题 提示不规范等

建议性问题 根据自己的经验提一些建议性的问题

WEB测试与APP测试的区别

  1. 架构不同。

web端是b/s架构的,b/s架构是基于浏览器地址访问的

app端是c/s架构的,c/s架构是要有客户端作为载体的

  1. 版本发布的方式和流程不同。

web发版本,开发部署新的代码到对应服务器地址,就可统一实现web端的更新

app发版本,开发需要打包(apk包和ipa包),打包之后需要发布到对应的渠道

  1. 兼容性

web,测试不同浏览器的兼容性(ie、chrome、firefox、360、QQ)

app,测试不同的分辨率、屏幕尺寸、手机品牌、系统版本

  1. 性能方面

web,测试响应的时间

app,测试响应时间、流量、耗电量、CPU、GPU、memory

  1. 安全性

web,sql注入。xss攻击等

app,https加密、签名、加固、密码加密等

6、app测试特点

适配性测试

网络测试

在线升级测试

中断测试

耗电量测试

弱网测试

安装卸载测试

流量测试

如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们1079636098,群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

app测试的主要内容

  1. 功能测试

业务逻辑正确性的测试

  1. 兼容性测试

系统版本

分辨率

如果一个bug,开发认为不是一个bug,怎么处理

常用linux命令

什么情况下定位不到元素

GET请求和POST请求的区别

网络情况

  1. 异常测试

热启动

网络切换

电话信息终端恢复

  1. 升级、安装、卸载

  2. 健壮性测试

手机资源消耗

流量消耗

电量测试

崩溃恢复

如果一个bug,开发认为不是一个bug,怎么处理

  1. 将问题提交到缺陷管理库里面进行备案。

  2. 获取判断的依据和标准

根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

根据用户的一般使用习惯,来确认是否是缺陷;

与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;

  1. 合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。

  2. 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

常用linux命令

  1. ifconfig 查看IP地址

  2. cat 用于显示指定文件的全部内容

  3. more 用分页的形式显示指定文件的内容

  4. mkdir 创建目录

  5. touch 创建新的文件

  6. grep 查找文件里符合条件的字符串

  7. find 查找指定的文件

  8. tail -f 用于自动刷新显示文件后N行数据内容

  9. kill -9 强制结束

  10. netstat -anp | grep 端口号 查看端口

  11. chmod -R 777 赋予777权限

什么情况下定位不到元素

  1. 代码写错

  2. 元素未出现(需要元素等待)

  3. 元素在iframe中

  4. 多窗口

  5. 出现弹窗(系统弹窗、JS弹窗)

  6. 元素属性值是动态加载的

  7. 元素无法确定唯一性

  8. 只读属性(元素不可操作)

GET请求和POST请求的区别

  1. GET使用URL或Cookies传参,POST将数据放在BODY中

  2. GET的URL会有长度上的限制,POST的数据则可以非常大

  3. POST比GET安全,因为在地址栏不可见

  4. 一般GET用来获取数据,POST用来发送数据

为什么要做接口测试

  1. 越底层发现BUG,修复成本越低

  2. 前端发生变化时,后端接口可以不用变

  3. 检查系统的安全性、稳定性,前端传参不可信

接口测试是怎么做的

–由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI等。

–也可以用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。

接口测试的重点

  1. 检查接口返回的数据是否与预期的结果一致

  2. 检查接口的容错性,加入传递的类型错误时是否可以处理

  3. 接口测试的边界值

  4. 接口的性能

  5. 接口的安全性

http状态码

  1. 1xx:请求正常,但是无响应,只有在实验状态下使用

  2. 2xx:2开头的表示发送成功

  3. 3xx:3开头的代表重定向,常见302

  4. 4xx:400代表客户端发送的语法有错误,401代表访问的页面没有授权,403 无权限访问该网页,404代表没有这个页面,415 格式错误

  5. 5xx:5开头的代表服务器异常,500代表服务器内部异常,504代表服务器超时

cookies和session的区别

  1. cookies数据存放在客户的浏览器上,session数据放在服务器上

  2. cookies不是很安全,别人可以分析存放在本地的cookies并进行cookies欺骗考虑到安全应当使用session

  3. session会在一定时间内保存在服务器上,当访问增多,会比较占用,你服务器的性能考虑到减轻服务器性能方面,应当使用cookies

常用的adb命令

  1. adb start-server 启动adb服务

  2. adb kill-server 关闭adb服务

  3. adb devices 查看设备号

  4. adb push 电脑 手机

  5. adb pull 手机 电脑

  6. adb logcat | grep 包名(unix)

  7. adb logcat | findstr 包名 (win)

  8. adb shell 进入shell命令行

  9. adb install 安装app到手机上

  10. adb uninstall 卸载app到手机上

  11. adb logcat > 文件名 输出log到文件

  12. adb shell top 测试app的资源消耗命令

产品的业务流程

解析

问你简历上写的某个项目整体的业务流程

比如电商项目中的注册功能,从开始注册到注册成功的整个过程

版本符合上线的标准是什么

验收标准

(1) 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。

(2) 在验收测试中发现的错误已经得到修改,各级缺陷修复率达到标准

(3) 所有测试项没有残余紧急、严重级别错误。

(4) 需求分析文档、设计文档和编码实现一致。

(5) 验收测试工件齐全(测试计划、测试用例、测试日志、测试通知单、测试分析报告,待验收的软件安装程

序。)

缺陷修复率标准

(1) 紧急、严重级别错误修复率应达到100%;

(2) 普通级别错误修复率应达到95%以上;

(3) 优化级别错误修复率应达到60%以上;

注:项目紧急时,普通级别错误修复率达60% 以上;优化级别错误修复率达20% 即可。

服务器运行状态响应指标

(1) cpu% 并发期间最大使用率应不超过70-80%,如有集合点并发可允许短暂接近或到达100& 但大部分不

应查过95%;

(2) memery 测试期间保证内存充足可用内存不少于20%;

(3) disk 监控硬盘是否有读写不超过40%;

(4) cpu load average 不应超过cpu 核心数*2 或者不超过cpu 核心数。

测试用例评审过程及相关参与人员

1:评审的过程

A:开始前做好如下准备

1、确定需要评审的原因

2、确定进行评审的时机

3、确定参与评审人员

4、明确评审的内容

5、确定评审结束标准

6、提前至少一天将需要评审的内容以邮件的形式发送给评审会议相关人员。并注明详审时间、地点及偿参与人员等。

7、 在邮件中提醒评审会议相关人员至少简读一遍评审内容,并记录相关的疑问,以便在评审会议上提出。

8、 会议主持者(一般为用例编写人员)应在会议前整理相关疑问,以便在会议上提出。

B:开始评审

1、 召开评审会议。与会者在设计人员讲解之后给出意见和建议,同时进行详细的评审记录。

2、 通用邮件与相关人员沟通

3、 通用IM工具直接与相关人员交流

4、根据评审内容进行评审

2:评审内容

1、 用例设计的结构安排是否清晰、合理,是否利于高效对需求进行覆盖。

2、 优先极安排是否合理。

3、 是否覆盖测试需求上的所有功能点。

4、 用例是否具有很好可执行性。例如用例的前提条件、执行步骤、输入数据和期待结果是否清晰、正确;期待结果是否有明显的验证方法。

5、 是否已经删除了冗余的用例。

6、 是否包含充分的负面测试用例。充分的定义,如果在这里使用2&8法则,那就是4倍于正面用例的数量,毕竟一个健壮的软件,其中80%的代码都是在“保护”20%的功能实现。

7、 是否从用户层面来设计用户使用场景和使用流程的测试用例。

8、 是否简洁,复用性强。例如,可将重复度高的步骤或过程抽取出来定义为一些可复用标准步骤。

3:参与评审人员(这里会分为多个级别进行评审)

1、 部门评审,测试部门全体成员参与的评审。

2、公司评审,这里包括了项目经理、需求分析人员、架构设计人员、开发人员和测试人员。

3、 客户评审,包括了客户方的开发人员和测试人员。这种情况在外包公司比较常见

最后小编为大家整理了一套最新的软件测试系统学习教程,包括测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等

通过大数据总结发现,其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点:

  • 测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
  • Linux( Linux基础+Linux练习题)
  • MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
  • Web测试
  • API测试
  • App测试
  • 管理工具
  • Python基础(Python基础+编程题+集合+函数+Python特性等等)
  • Selenium相关
  • 性能测试
  • LordRunner相关
  • 计算机网络
  • 组成原理
  • 数据结构与算法
  • 逻辑题
  • 人力资源

一、软件测试基础

  • 软件测试的步骤是什么?
  • 如何录制测试脚本?
  • 应该考虑进行如何测试的测试方法
  • 怎样估计测试工作量?
  • 测试设计的问题
  • 当测试过程发生错误时,有哪几种解决办法?
  • 测试执行的问题
  • 测试评估的目标
  • 如何提高测试?
  • C/S模式的优点和缺点
  • B/S模式的优点和缺点

在这里插入图片描述

二、Linux

  • grep和find的区别? grep 都有哪些用法?
  • 查看IP地址?
  • 创建和删除一个多级目录?
  • 在当前用户家目录中查找haha.txt文件?
  • 如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
  • 动态查看日志文件?
  • 查看系統硬盘空间的命令?
  • 查看当前机器listen 的所有端口?

在这里插入图片描述

三、Python

  • 统计python源代码文件中代码行数,去除注释,空行,进行输出?
  • python调用cmd并返回结果?
  • 冒泡排序
  • 1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
  • 请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
  • 给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
  • 判断 101-200 之间有多少个素数,并输出所有的素数
  • 一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例

  • 在这里插入图片描述

四、MySQL

  • 你用的Mysql是哪个引擎,各引擎之间有什么区别?
  • 如何对查询命令进行优化?
  • 数据库的优化?
  • Sql注入是如何产“生的,如何防止?
  • NoSQL和关系数据库的区别?
  • MySQL与MongoDB本质之间最基本的差别是什么
  • Mysql数据库中怎么实现分页?
  • Mysql数据库的操作?
  • 优化数据库?提高数据库的性能?
  • 什么是数据的完整性?

  • 在这里插入图片描述

五、Web

  • Web测试和app测试区别?
  • WEB测试环境搭建和测试方法
  • WEB测试教程
  • WEB测试要点及基本方法
  • Web测试页面总结

  • 在这里插入图片描述

六、接口测试

  • 什么是接口
  • 如果模块请求http改为了https,测试方案应该如何制定,修改?
  • 常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
  • 描述TCP/IP协议的层次结构,以及每一-层中重要协议
  • jmeter,一个接口的响应结果如下:
  • 接口产生的垃圾数据如何清理
  • 依赖第三方的接口如何处理
  • 测试的数据你放在哪?
  • 什么是数据驱动,如何参数化?

  • 在这里插入图片描述

七、性能测试

  • 你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
  • 服务端性能分析都从哪些角度来进行?
  • 如何理解压力测试,负裁测试以及性能测试?
  • 如何判断是否有内存泄漏及关注的指标?
  • 描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
  • 简述什么是值传递,什么是地址传递,两者区别是什么?
  • 什么是系统瓶颈?

  • 在这里插入图片描述

八、selenium

  • 如何开展自动化测试框架的构建?
  • 如何设计自动化测试用例:
  • webdriver如何开启和退出一个浏览器?
  • 什么是自动化测试框架?
  • Selenium是什么,流行的版本有哪些?
  • 你如何从命令行启动Selenium RC?
  • 在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
  • 什么是Selenium Server,它与Selenium Hub有什么不同?
  • 你如何从Selenium连接到数据库?
  • 你如何验证多个页面上存在的一个对象?
  • XPath中使用单斜杠和双斜杠有什么区别?
  • 如何编写SeleniumIDE/ RC的用户扩展?
  • 如何在页面加载成功后验证元素的存在?
  • 你对Selenium Grid有什么了解?它提供了什么功能?
  • 如何从你的Java Class启动Selenium服务器?
  • Selenium中有哪些验证点?
  • 什么是XPath?什么时候应该在Selenium中使用XPath?

  • 在这里插入图片描述

九、计算机与网络

  • 一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 …
  • 请简述DNS、活动目录、域的概念。
  • 10M兆宽带是什么意思?理论下载速度是多少?
  • 什么是IP地址?
  • OSI七层网络模型的划分?
  • TCP和UDP有什么不同?
  • HTTP属于哪一层的协议?
  • HTTP和HTTPS的区别?
  • cookies和session的区别?
  • HTTP的get请求和post请求的区别?
  • HTTP1.0和HTTP1.1有什么区别
  • TCP的连接建立过程,以及断开过程?
  • 客户端使用DHCP获取IP的过程?
  • 写出某个网段的网络地址和广播地址?

  • 在这里插入图片描述
    在这里插入图片描述

十、人力资源

  • 你的测试职业发展是什么?你自认为做测试的优势在哪里?
  • 你找工作时,最重要的考虑因素为何?
  • 为什么我们应该录取你?
  • 请谈谈你个人的最大特色。
  • 一个测试工程师应具备那些素质和技能?
  • 还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
  • 为什么选择测试这行?
  • 如果我雇用你,你能给部门带来什么贡献?

  • 在这里插入图片描述

最后

整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面试了8家软件公司测试岗位,面试题大盘点,我真的尽力了。 的相关文章

  • Linux网络编程 | I/O复用之select

    文章目录 前言一 select二 API接口 xff1a 三 使用步骤1 服务器端2 客户端 总结 前言 select的原理以及使用 提示 xff1a 以下是本篇文章正文内容 xff0c 下面案例可供参考 一 select select系统
  • Linux网络编程 | I/O复用之poll

    文章目录 前言一 poll二 API接口三 使用步骤1 服务器端2 客户端 总结 前言 poll的原理以及使用 提示 xff1a 以下是本篇文章正文内容 xff0c 下面案例可供参考 一 poll poll 系统调用和 select 类似
  • Linux网络编程 | I/O复用之epoll(LT模式)

    文章目录 前言一 epoll二 常用API xff1a 三 使用步骤1 服务器端 xff08 LT模式 xff09 2 客户端 总结 前言 epoll原理以及使用 提示 xff1a 以下是本篇文章正文内容 xff0c 下面案例可供参考 一
  • Linux网络编程 | I/O复用之epoll(ET模式)

    文章目录 前言一 epoll的LT模式与ET模式二 使用步骤1 服务器端 xff08 ET xff09 2 客户端 总结 前言 epoll xff08 ET模式 xff09 以及使用方法 提示 xff1a 以下是本篇文章正文内容 xff0c
  • Linux网络编程 | Libevent库

    文章目录 前言一 libevent二 Libevent模型1 模型图2 结构图 三 支持事件类型四 使用libevent完成TCP服务器端1 服务器端 总结 前言 简单介绍libevent库以及使用 提示 xff1a 以下是本篇文章正文内容
  • Linux基础 | 守护进程

    文章目录 前言一 守护进程是什么 xff1f 二 编程流程三 使用步骤1 后台运行 xff0c 每隔五秒输出一次时间2 输出结果 总结 前言 提示 xff1a 以下是本篇文章正文内容 xff0c 下面案例可供参考 一 守护进程是什么 xff
  • C++ | shared_ptr与weak_ptr

    文章目录 前言一 shared ptr与weak ptr是什么 xff1f 1 shared ptr的内存模型2 weak ptr的内存模型 二 仿写系统的shared ptr与weak ptr1 mdeletor2 Ref con3 sh
  • C++ | lambda表达式

    文章目录 前言一 lambda是什么二 使用步骤总结 前言 简单介绍lambda表达式以及使用方法 提示 xff1a 以下是本篇文章正文内容 xff0c 下面案例可供参考 一 lambda是什么 lambda表达式是C 43 43 11最重
  • Linux基础 | 内存管理

    96 文章目录 前言一 准备工作1 存储器结构2 进程运行原理3 内存扩充技术 二 内存管理1 连续分配管理方式a 单一连续分配b 固定分区分配c 动态分区分配d 动态分区的分配策略 2 非连续分配管理方式 三 虚拟内存管理1 虚拟内存概念
  • C++ | C++中二维数组创建与初始化

    文章目录 前言一 使用步骤1 创建数组2 初始化 总结 前言 刷题时碰到需要用vector创建二维数组的情况 xff0c 简单记录一下 提示 xff1a 以下是本篇文章正文内容 xff0c 下面案例可供参考 一 使用步骤 1 创建数组 代码
  • group by与partition by用法

    本文采用Oracle数据库测试 xff0c 前4个查询为一组 xff0c 后2个查询为一组 xff0c 每组前面的查询是为了推出最后的查询 创建表 xff0c 为了简化处理 xff0c 字段类型都采用varchar create table
  • 算法 | 二分查找及其变种

    文章目录 前言一 二分查找二 数组完全有序且不重复1 第一题2 第二题 三 数组完全有序且重复1 第一题2 第二题 四 数组部分有序且不重复1 第一题2 第二题 五 数组部分有序且重复1 第一题2 第二题3 第三题 六 二维数组总结 前言
  • C++ | 四种类型转换

    文章目录 前言一 类型转化的四种方式二 每个类型转换的使用以及注意事项1 const cast2 static cast3 reinterpret cast4 dynamic cast 总结 前言 简单记录一下C 43 43 中常用的四种类
  • C++ | sort()函数使用详解

    文章目录 前言一 sort 是什么 xff1f 二 使用步骤1 对二维数组进行排序2 针对其它内置类型与结构体或者类 总结 前言 提示 xff1a 这里可以添加本文要记录的大概内容 xff1a 力扣347题 xff1a 给你一个整数数组 n
  • C++ | 菱形继承与虚继承

    文章目录 前言一 菱形继承是什么 xff1f 二 没有虚继承的情况1 具体代码2 结构图 二 有虚继承的情况1 具体代码2 结构图 总结 前言 简单介绍一下C 43 43 中的菱形继承 提示 xff1a 以下是本篇文章正文内容 xff0c
  • C++ | 不用额外空间反转句子

    描述 给定一个字符串 xff0c 逐个翻转字符串中的每个单词 说明 单词的构成 xff1a 无空格字母构成一个单词 样例 给出s 61 the sky is blue xff0c 返回 34 blue is sky the 34 span
  • C语言中string函数库中的一些函数的用法

    目录 1 memcpy函数 1 标准形式为 2 所对应的参数 3 该函数的返回值指向的是目标存储区 dist的指针 4 示例 2 memmoer 3 strcpy 1 函数原型 2 所对应的参数 3 该函数的返回值指向的是目标存储区 dis
  • 火狐浏览器添加扩展之安装Tampermonker

    1 进入火狐浏览器 2 点击右上角的这个图标 3 选择最下面的管理扩展 4 在寻找更多附加组件里面输入Tampermonker进行搜索 5 点击添加到Firefox 6 点击右上角的添加 7 点击右上角的好的 8 在火狐浏览器首页上点击新添
  • 回调参数的设置

    回调参数的设置 前言一 通用开发参数二 小程序或应用中的回调设置问题解决总结 前言 在作为第三方开发接入前 xff0c 不管是应用的接入还是小程序的接入 xff0c 都必须要在后台设置一些信息 在这当中 xff0c 因为在官方的文档中不太理
  • Linux网络通信之【Socket编程】

    目录 30 socket编程 30 1 socket 简介 什么是TCP IP UDP 30 2 socket API 30 2 1 socket编程接口 30 2 2 bind 函数 30 2 3 listen 函数 30 2 4 acc

随机推荐