随笔分类 -  Python--网络编程

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