随笔分类 - Python--网络编程
摘要:服务端: 客户端: 先运行服务端,在运行客户端,并没有发生粘包现象, 服务端运行结果为: 由于windows系统原因,第二次并没有打印出来, 把服务端第一次recv的字节数修改为1,只能收到1个字节h,其余丢失, 第二收到的为world,windows系统测试出现问题: linux系统不会出现这种问
阅读全文
摘要:服务端: 客户端: 先启动服务端,再启动客户端,在客户端输入小写字母abc, 客户端运行结果为: 服务端运行结果为: 这就实现了基于udp协议的简单套接字程序 基于udp协议的套接字能够发空: 在客户端输入空, 客户端运行结果为: udp就算发送数据为空,但是udp是数据报协议,数据报中还包含有ip
阅读全文
摘要:服务端实现 客户端实现 先启动服务端,再启动客户端,在客户端输入put test.py 客户端运行结果为; 服务端运行结果: 实际效果: 注意,在windows系统中使用pycharm,上传成功后,并不会立即在上传文件夹中显示,需要找到文件夹路径,点进去,然后才会在pycharm中看到,
阅读全文
摘要:TCP VS UDP tcp基于链接通信 基于链接,则需要listen(backlog),指定连接池的大小 基于链接,必须先运行的服务端,然后客户端发起链接请求 对于mac系统:如果一端断开了链接,那另外一端的链接也跟着完蛋recv将不会阻塞,收到的是空(解决方法是:服务端在收消息后加上if判断,空
阅读全文
摘要:服务端: 客户端“ 先启动服务端,再启动客户端,在客户端输入信息, 客户端运行结果为: 服务端运行结果为:
阅读全文
摘要:服务端代码: 客户端1代码: 客户端2代码: 先开启服务端,然后开启客户端1,客户端2,在客户端1输入信息能够收到服务端的响应信息,在客户端2输入信息不能收到服务端的响应信息,此时断开客户端1 的连接,客户端2可以正常收到服务端的响应信息, 客户端1运行结果: 客户端2运行结果: 服务端运行结果:
阅读全文
摘要:一、基本socket例子 服务端: 客户端: 先运行服务端,再运行客户端,客户端运行结果为: 二、循环收发数据 服务端: 客户端: 先运行服务端,在运行客户端,依次在客户端输入: hi、你好、学习python, 客户端运行结果为: 服务端运行结果为: 三、简单聊天软件 服务端 客户端 先运行服务端,
阅读全文
摘要:一、服务端代码为: 二、客户端代码为: 先启动服务端,在启动客户端,在客户端输入get test.py 下载成功: 客户端运行结果为:
阅读全文
摘要:一、服务端代码: 二、客户端代码: 先启动服务端,再启动客户端,然后在客户端执行 get 1.txt, get test.py 都显示下载成功: 客户端打印字典信息为: 以上代码已经实现了客户端从服务端下载文件的功能,如果想把数据从客户端上传到服务端,则把服务端和客户端代码 做相应调整即可。 如果s
阅读全文
摘要:一、服务端代码: 二、客户端代码: 在客户端依次执行,ipconfig 和 dir 客户端结果为: 代码显示结果正常,没有发生粘包现象,
阅读全文
摘要:一、i类型的字节数限制,如下代码报错: 二、l类型也有字节数限制,如下代码报错: 三、可以用字典存储数据, 如: str就可以转成bytes类型发送出去了,
阅读全文
摘要:一、服务端代码为: 二、客户端代码为: 在客户端依次输入,dir, ipconfig, dir,客户端结果为: 从以上客户端输出结果可以看出,解决了粘包现象
阅读全文
摘要:一、send是不是直接把数据发给服务端 不是,要想发数据,必须得通过网卡发送数据,应用软件是无法直接通过网卡发送数据的,它需要调用操作系统接口, 也就是说,应用软件把要发送的数据由应用系统内存copy到操作系统内存,进而由操作系统控制数据的发送,copy到 操作系统内存也意味着send已经发送完毕了
阅读全文
摘要:一、为了防止出现端口占用的情况, linux中可以使用pkill -9 python windows系统中使用taskkill python 二、什么是粘包现象 1、多个包(也就是多个命令的执行结果)粘在一起的现象,叫做粘包现象 2、代码示例如下: 服务端代码: 客户端代码: 在客户端依次输入dir
阅读全文
摘要:一、服务端 二、客户端 在客户端运行dir,结果为: 服务端运行结果:
阅读全文
摘要:一、代码示例 服务端: 客户端1 客户端2 加上链接循环之后,服务端可以依次为客户端1和客户端2提供服务,但是同时只能为一个客户端提供服务,不能够并行提供服务
阅读全文
摘要:一、服务端 二、客户端 客户端结果为: 服务端结果为: 三、有时间运行服务端程序的时候,显示端口占用错误,这时候可以使用如下代码防止出现这种情况 四、当客户端输入为空时(也就是直接回车),按回车后,客户端一直横在那, 原因分析: 客户端发送空信息需要调用操作系统接口,把客户端程序内存中要发送的信息拷
阅读全文
摘要:一、服务端 运行服务端,会卡在res = phone.accept()等待连接 二、客户端 先运行服务端,然后运行客户端,结果为: 三、完整的一次通信代码 服务端运行结果为: 客户端运行结果为:
阅读全文
摘要:一、socket在互联网协议中的位置 二、socket是什么? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织
阅读全文
摘要:一、传输层的功能是建立端口到端口的通信 二、TCP协议 1、可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。 2、tcp报文格式: 3、tcp的三次握手与四次挥手 三次握手,建立连接,四次
阅读全文