网络编程-socket开发
练习:
1、什么是C/S架构?
2、互联网协议是什么?分别介绍五层协议中每一层的功能?
3、基于tcp协议通信,为何建立链接需要三次握手,而断开链接却需要四次挥手
4、为何基于tcp协议的通信比基于udp协议的通信更可靠?
5、流式协议指的是什么协议,数据报协议指的是什么协议?
6、什么是socket?简述基于tcp协议的套接字通信流程
7、什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?
8、基于socket开发一个聊天程序,实现两端互相发送和接收消息
9、基于tcp socket,开发简单的远程命令执行程序,允许用户执行命令,并返回结果
10、基于tcp协议编写简单FTP程序,实现上传、下载文件功能,并解决粘包问题
11、基于udp协议编写程序,实现功能执行指定的命令,让客户端可以查看服务端的时间
(1)执行指定的命令,让客户端可以与服务的的时间
(2)执行指定的命令,让客户端可以与服务的的时间同步
综合作业:
开发一个支持多用户同时在线的FTP程序
要求:
- 用户加密认证
- 允许同时多用户登录(用到并发编程的知识,选做)
- 每个用户有自己的家目录,且只能访问自己的家目录
- 对用户进行磁盘配额,每个用户的可用空间不同(选做)
- 允许用户在ftp server上随意切换目录
- 允许用户查看当前目录下的文件
- 允许上传和下载文件,并保证文件的一致性
- 文件传输过程中显示进度条
- 附加:支持文件的断点续传(选做)
- 开发的程序需符合PEP8开发规范,及专业的生产软件设计规范,包括目录、代码命名、功能接口等
网络编程-socket开发的更多相关文章
- 第六章|网络编程-socket开发
1.计算机基础 作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上,应用软件是无法直接操作硬件的,应用软件对硬件的操作必须调用操作系统的接口,由 ...
- 网络编程——socket开发
Socket套接字方法 socket 实例类(8-10分钟) socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None) ...
- 练习题|网络编程-socket开发
1.什么是C/S架构? C指的是client(客户端软件),S指的是Server(服务端软件),C/S架构的软件,实现服务端软件与客户端软件基于网络通信. 2.互联网协议是什么?分别介绍五层协议中每一 ...
- 网络编程-SOCKET开发之----2. TCP粘包现象产生分析
1. 粘包现象及产生原因 1)概念 指TCP协议中,发送方发送的若干个包数据到接收方接收时粘成一包.发送方粘包:发送方把若干个要发送的数据包封装成一个包,一次性发送,减少网络IO延迟:接收方粘包:接收 ...
- 网络编程-SOCKET开发之----3. socket通信工作流程
1. TCP的socket通信流程 服务端 1)socket----创建socket对象. 2)bind----绑定本机ip+port. 3)listen----监听来电,若在监听到来电,则建立起连接 ...
- 网络编程socket基本API详解(转)
网络编程socket基本API详解 socket socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket ...
- Android 网络编程 Socket
1.服务端开发 创建一个Java程序 public class MyServer { // 定义保存所有的Socket,与客户端建立连接得到一个Socket public static List< ...
- Python网络编程socket
网络编程之socket 看到本篇文章的题目是不是很疑惑,what is this?,不要着急,但是记住一说网络编程,你就想socket,socket是实现网络编程的工具,那么什么是socket,什么是 ...
- java网络编程socket\server\TCP笔记(转)
java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04| 分类: Socket | 标签:java |举报|字号 订阅 1 TCP的开销 a ...
随机推荐
- pat 乙级 1093 字符串A+B (20 分)
给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集.要求先输出 A,再输出 B,但重复的字符必须被剔除. 输入格式: 输入在两行中分别给出 A 和 B,均为长度不超过 1的.由可见 ...
- Java--数组转成list,list转数组
数组转成list: 方法一: String[] userid = {"aa","bb","cc"}; List<String> ...
- JavaScript年月日和时间戳互转
/** 一丶将日期单位转为时间戳 / 毫秒 **/ var str="2017年06月2日" var time = str.replace(/年/i,"-"). ...
- 《DSP using MATLAB》示例Example 8.7
%% ------------------------------------------------------------------------ %% Output Info about thi ...
- java中线程安全问题
在java中单线程和多线程是什么意思,他们有什么区别,分别的作用是什么? 在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”.多线程处理一个常见的例 ...
- http接口测试工具
2016-08-28 19:24:55 以全国天气预报为例 https://www.juhe.cn/docs/api/id/39/aid/132 (一)火狐的HttpRequester 在URL中填 ...
- ubuntu 指令修改时区 tzselect
修改时区 tzselect 指令只是根据提示一步步选择正确时区,但不能真正修改时区,最后输入提示的指令,然后重启,才能永久修改. aaron@ubuntu:~$ tzselect Please ide ...
- CAsyncSocket只传输了一部分数据(UDP),后面是乱码
void CCAsyncSocketDlg::OnBnClickedBtnSend() { UpdateData(TRUE); TCHAR ipstr[INET_ADDRSTRLEN]; DWORD ...
- NumberUtils、ArrayUtils和RandomUtils工具类用法
一.NumberUtils工具类 /*1.NumberUtils.isNumber():判断字符串是否是数字*/ NumberUtils.isNumber("5.96");//结果 ...
- POJ2739(尺取法)
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23931 ...