python3实现TCP协议的简单服务器和客户端

利用python3实现tcp协议,和udp类似。udp应用于及时通信,而tcp协议用来传送文件、命令等操作,因为这些数据不允许丢失,否则会造成文件错误或命令混乱。下面代码就是模拟客户端通过命令行操作服务器。客户端输入命令,服务器执行并且返回结果。

TCP(Transmission Control Protocol 传输控制协议):是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。

TCP客户端

from socket import *host  = '192.168.48.128'port  = 13141addr = (host,port)bufsize=1024tcpClient = socket(AF_INET,SOCK_STREAM) # 这里的参数和UDP不一样。tcpClient.connect(addr) #由于tcp三次握手机制,需要先连接while True:    data  = input('>>> ').encode(encoding="utf-8")if not data:break# 数据收发和UDP基本一致tcpClient.send(data)     data = tcpClient.recv(bufsize).decode(encoding="utf-8") print(data)tcpClient.close()

登录后复制

TCP客户端

from socket import *from time import ctimeimport os host = ''port = 13140bufsize = 1024addr = (host,port)tcpServer = socket(AF_INET,SOCK_STREAM)tcpServer.bind(addr)tcpServer.listen(5) #这里设置监听数为5(默认值),有点类似多线程。while True:print('Waiting for connection...')    tcpClient,addr = tcpServer.accept() #拿到5个中一个监听的tcp对象和地址print('[+]...connected from:',addr)while True:        cmd = tcpClient.recv(bufsize).decode(encoding="utf-8") print('   [-]cmd:',cmd)if not cmd:break###这里在cmd中执行来自客户端的命令,并且将结果返回###cmd = os.popen(cmd) ###os.popen(cmd)对象是file对象子类,所以可以file的方法cmdResult = cmd.read()        cmdStatus = cmd.close()#################################################data = cmdResult if (not cmdStatus) else "ERROR COMMAND"tcpClient.send(data.encode(encoding="utf-8"))    tcpClient.close() #print(addr,'End')tcpServer.close() #两次关闭,第一次是tcp对象,第二次是tcp服务器

登录后复制

以上就是python3实现TCP协议的简单服务器和客户端的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2270342.html

(0)
上一篇 2025年2月27日 11:38:50
下一篇 2025年2月19日 10:19:43

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python简单线程和协程的实例详解

    python中对线程的支持的确不够,不过据说python有足够完备的异步网络框架模块,希望日后能学习到,这里就简单的对python中的线程做个总结 threading库可用来在单独的线程中执行任意的python可调用对象。尽管此模块对线程相…

    2025年2月27日
    200
  • python3快速入门

      一些朋友自学python过程中,发现书也能看懂,书上的玩具代码也能看懂,但为啥自己不能做习题,不能写代码解决问题,自己不能动手写代码?   原因是初学者没有学会计算思维、解决问题的方法、编程思路。   编程思路的养成需要一个过程的,在编…

    编程技术 2025年2月27日
    200
  • 简单FTP的实现详解

    作业要示: 开发简单的FTP:1. 用户登陆2. 上传/下载文件3. 不同用户家目录不同4. 查看当前目录下文件5. 充分使用面向对象知识      REDMAE 1 用户登陆 2 3 1、查看用户目录文件 4 2、上传文件, 5 3、下载…

    2025年2月27日 编程技术
    200
  • Python中选择排序的实例详解

    选择排序:   选择排序(selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。…

    编程技术 2025年2月27日
    200
  • ubuntu16.04设置python3为默认及一些库的安装

    ubuntu默认python为2.7,所以安装python包时安装的为py2的包。   利用alternatives机制更改py3为默认。 shell里执行: sudo update-alternatives –install /usr/…

    2025年2月27日
    200
  • 分享Python实现选择排序的实例教程

    选择法也算是入门的一种排序算法,比起冒泡法,它的方法巧妙了一些,它的出发点在于“挑”,每次挑选数组的最值,与前置元素换位,然后继续挑选剩余元素的最值并重复操作。个人认为选择排序的意义不在于排序本身,而在于挑选和置换的方法,对于一些问题很有帮…

    编程技术 2025年2月27日
    200
  • Python的web服务器相关知识点

    1.浏览器请求动态页面过程 2.WSGI python web server gateway interface (或简称 wsgi,读作“wizgy”)。 WSGI允许开发者将选择web框架和web服务器分开。可以混合匹配web服务器和w…

    2025年2月27日 编程技术
    200
  • 分享Python如何实现头像拼接技术/

    微信好友全头像 话不多说,直接上代码 import itchatimport mathimport PIL.Image as Imageimport ositchat.auto_login()friends = itchat.get_fri…

    2025年2月27日
    200
  • python语言如何实现字典排序?

    新华字典大家都使用过吧,那么使用python语言是如何实现字典排序的呢?下面跟着本教程一起学习python实现字典依据value排序,需要的朋友参考下吧 具体内容如下: 使用sorted将字典按照其value大小排序 >>&gt…

    编程技术 2025年2月27日
    200
  • supervisor的简单介绍

    supervisor是可以用来保护在linux下运行的进程,提供start/stop/restart等功能,能够保证进程不被其他进程误杀掉。 首先apt-get install supervisor supervisord 是daemon主…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论