python日记(使用TCP实现的对话客户端和服务器)

目录
  • TCP 客户端
  • TCP 服务端

TCP 客户端

一个使用TCP协议实现可连续对话的客户端示例代码:

import socket
# 客户端配置
HOST = 'localhost'
PORT = 12345
# 创建TCP套接字并连接服务器
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))
while True:
    # 获取用户输入
    message = input("请输入要发送的消息:")
    # 发送消息到服务器
    client_socket.sendall(message.encode("utf-8"))
    # 接收服务器传回的消息
    data = client_socket.recv(1024)
    print(f"收到来自服务器的消息:{data.decode('utf-8')}")
# 关闭套接字
client_socket.close()

在这个示例中,我们首先创建了一个TCP套接字,并使用connect()函数连接到指定的服务器地址和端口。然后,我们通过用户输入不断发送消息到服务器,并等待服务器响应并显示其结果。请注意,由于TCP是面向连接的协议,因此我们可以通过该连接保证消息的可靠性和顺序性。

最后,我们通过close()函数关闭套接字。

需要注意的是,当我们使用TCP协议时,需要确保服务端也使用TCP协议进行相应的通信。

TCP 服务端

以下是一个使用TCP协议实现可连续对话的服务端示例代码:

import socket
# 服务器配置
HOST = 'localhost'
PORT = 12345
# 创建TCP套接字并绑定到地址和端口
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
# 监听连接
server_socket.listen()
# 接受连接并与客户端建立通信
client_socket, client_address = server_socket.accept()
print(f"与客户端 {client_address} 建立连接。")
while True:
    # 接收客户端传来的消息
    data = client_socket.recv(1024)
    print(f"来自{client_address}的消息:{data.decode('utf-8')}")
    if not data: # 如果客户端关闭了连接,则退出循环
        break
    # 获取用户输入
    message = input("请输入要发送的消息:")
    # 发送消息到客户端
    client_socket.sendall(message.encode("uft-8"))
# 关闭套接字
client_socket.close()
server_socket.close()

在这个示例中,我们首先创建了一个TCP套接字,并将其绑定到指定的地址和端口。然后,我们通过listen()函数开始监听客户端连接请求。

当有客户端连接时,我们调用accept()函数接受连接并返回客户端套接字和地址。然后,我们通过循环不断接收和发送数据,从而实现了可连续对话的功能。

请注意,由于TCP是面向连接的协议,因此我们可以通过该连接保证消息的可靠性和顺序性。最后,我们通过close()函数关闭套接字。

需要注意的是,在实际开发中,我们可能需要为每个连接创建一个新的线程或进程,以便能够同时处理多个客户端连接。

以上就是python日记(使用TCP实现的对话客户端和服务器)的详细内容,更多关于python TCP对话客户端服务器的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python TCP全连接攻击中SockStress全连接攻击详解

    攻击者向目标发送一个很小的流量,但是会造成产生的攻击流量是一个巨大的,该攻击消耗的是目标系统的CPU/内存资源,使用低配版的电脑,依然可以让庞大的服务器拒绝服务,也称之为放大攻击. 该攻击与目标建立大量的socket连接,并且都是完整连接,最后的ACK包,将Windows大小设置为0,客户端不接收数据,而服务器会认为客户端缓冲区没有准备好,从而一直等待下去(持续等待将使目标机器内存一直被占用),由于是异步攻击,所以单机也可以拒绝高配的服务器. #coding=utf-8 import socke

  • python使用tcp传输图片数据

    本文实例为大家分享了python使用tcp传输图片数据的具体代码,供大家参考,具体内容如下 数据包格式如下 客户端: import socket import sys HOST,PORT = "172.18.0.3",19984 def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((HOST, PORT)) #包头标志 arrBuf = bytearray(b'\xff\xa

  • Python socket如何实现服务端和客户端数据传输(TCP)

    目录 socket服务端和客户端数据传输(TCP) socket服务端,客户端互相通信 socket服务端和客户端数据传输(TCP) 服务器端: import socket #创建一个socket对象 socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = "127.0.0.1" port = 9999 #绑定地址 socket_server.bind((host, port)) #设置监听 so

  • Python写安全小工具之TCP全连接端口扫描器

    目录 一个简单的端口扫描器 多线程版本 前言: 通过端口扫描我们可以知道目标主机都开放了哪些服务,下面通过TCP connect来实现一个TCP全连接端口扫描器. 一个简单的端口扫描器 #!/usr/bin/python3 # -*- coding: utf-8 -*- from socket import * def portScanner(host,port): try: s = socket(AF_INET,SOCK_STREAM) s.connect((host,port)) print

  • Python使用 TCP协议实现智能聊天机器人功能

    编写聊天程序的服务端代码和客户端代码.完成后,先启动服务端代码,然 后启动客户端程序输人问题,服务端可以返回相应的答案.要求服务端代码具 有一定的智能,能够根据不完整的问题识别客户端真正要问的问题. 程序运行后界面如下图所示. 源代码: 服务端 Sever.py: from os.path import commonprefix from posixpath import split import socket #建立聊天回复字典 words={'how are you?':'Fine,than

  • Python 基于TCP 传输协议的网络通信实现方法

    目录 1.基础概念 1.1协议 1.2IP地址 1.3端口 2.TCP网络编程实现 2.1服务器端编程 2.2客户端编程 3总结 1.基础概念 什么是网络编程? 指在网络环境中,如何实现不在同一物理位置中的计算机之间进行数据通信 如果要保证数据通信顺利完成,则需要先了解如下几个概念: 1.1 协议 不同计算机内的进程之间进行数据通信时,需要先对数据进行封装或打包后方可以进行传输.所谓协议指通信双方需要共同遵守的数据打包格式. 如同现实世界里邮寄商品一样: 商品相当于要传送给对方的数据:在传输之前

  • python实现TCP文件接收发送

    本文实例为大家分享了python实现TCP文件接收发送的具体代码,供大家参考,具体内容如下 下一篇分享:udp收发的实现 先运行服务器端打开接收,在运行客服端发送文件 还有记得改一下ip哟 1.发送 根据自己需求修改,简单局域网下完成文件收发 客户端 # 由客户端向服务器传数据,文件 import socket import tqdm import os def send(filename): # 传输数据间隔符 SEPARATOR = '<SEPARATOR>' # 服务器信息 host =

  • python日记(使用TCP实现的对话客户端和服务器)

    目录 TCP 客户端 TCP 服务端 TCP 客户端 一个使用TCP协议实现可连续对话的客户端示例代码: import socket # 客户端配置 HOST = 'localhost' PORT = 12345 # 创建TCP套接字并连接服务器 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect((HOST, PORT)) while True: # 获取用户输入 mes

  • python如何创建TCP服务端和客户端

    本文实例为大家分享了python创建tcp服务端和客户端的具体代码,供大家参考,具体内容如下 1.服务端server from socket import * from time import ctime HOST = '' PORT = 9999 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) #创建套接字 tcpSerSock.bind(ADDR) #绑定IP和端口 tcpSerSock.

  • Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例

    本文实例讲述了Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能.分享给大家供大家参考,具体如下: 由于目前工作的需要,需要在IPv4和IPv6两种网络模式下TCP和UDP的连接,要做到客户端发包,服务端收包. 前几天写了代码,但是把UDP的客户端和服务端使用TCP模式的代码了.今天在公司使用该工具的时候,发现了问题,忘记了UDP不需要验证.疏忽,疏忽.不过刚刚接触编程,可以原谅. 现在在家,已经把代码改好了.经测试可以使用. 先运行客户端: python Mini

  • 基于python中的TCP及UDP(详解)

    python中是通过套接字即socket来实现UDP及TCP通信的.有两种套接字面向连接的及无连接的,也就是TCP套接字及UDP套接字. TCP通信模型 创建TCP服务器 伪代码: ss = socket() # 创建服务器套接字 ss.bind() # 套接字与地址绑定 ss.listen() # 监听连接 inf_loop: # 服务器无限循环 cs = ss.accept() # 接受客户端连接 comm_loop: # 通信循环 cs.recv()/cs.send() # 对话(接收/发

  • Python简单实现TCP包发送十六进制数据的方法

    本文实例讲述了Python简单实现TCP包发送十六进制数据的方法.分享给大家供大家参考,具体如下: 举例: 0x12, 0x34可以直接拼成 "\x12\x34". 客户端代码示例: #-*- encoding: utf-8 -*- import json import socket import sys import binascii reload(sys) sys.setdefaultencoding('utf-8') if __name__=="__main__&quo

  • 利用Python中SocketServer 实现客户端与服务器间非阻塞通信

    利用SocketServer模块来实现网络客户端与服务器并发连接非阻塞通信. 首先,先了解下SocketServer模块中可供使用的类: BaseServer:包含服务器的核心功能与混合(mix-in)类挂钩:这个类只用于派生,所以不会生成这个类的实例:可以考虑使用TCPServer和UDPServer. TCPServer/UDPServer:基本的网络同步TCP/UDP服务器. UnixStreamServer/ UnixDatagramServer:基本的基于文件同步TCP/UDP服务器.

  • Nodejs之TCP服务端与客户端聊天程序详解

    TCP是用来计算机之间进行通信的,通过编写客户端和服务端聊天的代码,对于服务器与客户端的工作步骤有了深刻的了解,在这里根据了不起的Node.js一书来总结一下. TCP聊天程序需要用到Nodejs中的net模块,net模块是对TCP的封装,用于创建TCP服务端与客户端的. 服务器端 count:连接的客户端个数: users:用于存储客户端用户昵称的对象,对象值都为该客户端的Socket,Socket是一个接口,用于服务端与客户端通信. net.createServer:是用来创建TCP服务器,

  • 对python中基于tcp协议的通信(数据传输)实例讲解

    阅读目录 tcp协议:流式协议(以数据流的形式通信传输).安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信) tcp协议在OSI七层协议中属于传输层,它上承用户层的数据收发,下启网络层.数据链路层.物理层.可以说很多安全数据的传输通信都是基于tcp协议进行的. 为了让tcp通信更加方便需要引入一个socket模块(将网络层.数据链路层.物理层封装的模块),我们只要调用模块中的相关接口就能实现传输层下面的繁琐操作. 简单的tcp协议通信模板:(需要一个服务端和一个客户端) 服务

  • python多线程实现TCP服务端

    本文实例为大家分享了python多线程实现TCP服务端的具体代码,供大家参考,具体内容如下 需求 1.创建一个TCP服务器接收服务端发送的信息并给予答复 2.以多线程方式实现接收客户端信息 3.间客户端发送的信息解码输出 思路分析 1.创建一个TCP客户端套接字 2.写一个接收消息的方法,可以接收客户端消息并解码输出 3.客户端被动监听,每有一个客户端连接就创建一个子线程执行接收消息方法 代码实现 # 导入模块 import socket import threading # 接收消息 def

随机推荐