首页 > 编程语言 >Python实现网络通信——TCP编程

Python实现网络通信——TCP编程

时间:2023-01-23 23:36:13浏览次数:50  
标签:网络通信 socket Python TCP HOST print data PORT conn

TCP编程

 

 服务器端代码

'''
connect(address)    链接远程计算机
send(bytes[,flags]) 发送数据
recv(bufsize[,flags])   发送数据
bind(address)   绑定地址
listen()    开始接听,等待客户端连接
accept()    响应客户请求
sendall()   发送全部信息
'''
'''
服务端代码
'''
import socket

words = {'how are you?':'Fine,thank you',
         'how old are you':'18',
         'what you name?':'LuoJiaHong',
         'what is you name':'LuoJIaHong',
         'where do you work':'SDIBT',
         'bye':'Bye'
         }
HOST = ''
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定socket,服务器的ip随意,端口号是50007
s.bind((HOST,PORT))
#开始监听,变为服务器,参数表示可同时服务的客户端数量
s.listen(1)
print('Listening at port:',PORT)
#conn,是用于数据发送的套接字,就像是一把独属服务器的锁
conn,addr = s.accept()
print('Connected by',addr)
while True:
    #每次能够传输1024字节,同时转换字符
    data = conn.recv(1024).decode()
    #接收到空串,没有收到的数据,表示对方已经关闭
    if not data:
        break
    print('Received message:',data)
    conn.sendall(words.get(data,'Nothing').encode())
conn.close()
s.close()

客户端代码

import sys
import socket
HOST = '172.26.48.1'
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
    s.connect((HOST,PORT))
except Exception as e:
    print('Server not found or not open')
    sys.exit()
while True:
    c = input('Input the content you want to send:')
    s.sendall(c.encode())
    #从服务器端接收数据字节串,然后解码为字符串
    data = s.recv(1024).decode()
    print('Received:',data)
    if c.lower() == 'bye':
        break
s.close()

标签:网络通信,socket,Python,TCP,HOST,print,data,PORT,conn
From: https://www.cnblogs.com/buchijiuminvhai/p/17065449.html

相关文章

  • 记录一次python爬虫模拟登录吧
    测试网站是本人学校,费话不多说下面开始首先直接导库,过程中需要时间戳,rsa加密importrequestsimportreimporttimefromCrypto.PublicKeyimportRSAfromCrypto.Ci......
  • archlinux将python更换到3.11
    python更换到3.11版本安装python3.11首先利用yay-Spython311生成缓存文件,在~/.cache/yay/python311接着去官网下载一个python3.11的包,https://aur.archlinux.org/pack......
  • Python面向对象(上)
    Python面向对象(上)python是一门面向对象的编程语言。何为对象?对象是类的实例。在生活中,任何一个事物都是一个对象,如牡丹花。牡丹花的类是花类,同样属于花类的还有荷花、月季......
  • SICP:复数的直角和极坐标的表示(Python实现)
    绪论我们已经介绍过数据抽象,这是一种构造系统的方法学,它能够使程序中的大部分描述与其所操作的数据对象的具体表示无关,比如一个有理数程序的设计与有理数的实现相分离。这......
  • Python - XSS-Attribute
    参考资料:https://owasp-skf.gitbook.io/asvs-write-ups/cross-site-scripting-attribute-xss-attribute/kbid-3-cross-site-scripting-attribute靶场环境$sudodockerp......
  • 【Python】输入 LaTeX 代码并通过 Sympy 完成计算或化简
    Sympy是常用的一个符号计算的Python库,基本可以满足初等数学到高等数学、线性代数、离散数学以及本科物理所需的符号计算。然而Sympy在使用时还需要声明变量,并使用类W......
  • Python XSS
    参考资料:https://owasp-skf.gitbook.io/asvs-write-ups/cross-site-scripting-xss/kbid-3-cross-site-scripting靶场环境搭建$sudodockerpullblabla1337/owasp-skf-l......
  • Hello, Python
    一、前戏1.编程语言简介在生活中,如果你想和外国人进行交流,你就得懂得他们国家的语言(汉语、英语、德语、法语等等),同样的,编程语言就是人与计算机之间沟通的一门语言,它能够......
  • Anaconda 安装 OpenCV for Python 教程(全平台通用)
    准备工作安装anaconda(均为超链接)Ubuntu安装Windows安装版本信息Python版本3.6OpenCV版本3.4.1.15dlib版本19.6.1开始搭建Anaconda创建Python虚......
  • Python的UDP网络编程
    UDP编程通信协议有,UDP和TCP模式:1、TCP适用于效率较低,精度较高的场景(文件传输、电子邮件)2、UDP适用于效率较高(视频在线点播,网络语音通话等)接下来的代码介绍的是UDP协议......