热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python写tcp通信程序_一个简单的基于TCP通信的服务器端与客户端程序

一,概述1,客户端:创建客户端套接字对象和服务端套接字建立连接发送数据接收数据关闭客户端套接字2,服务器端:创

一,概述

1,客户端:

创建客户端套接字对象

和服务端套接字建立连接

发送数据

接收数据

关闭客户端套接字

2,服务器端:

创建服务端端套接字对象

绑定端口号

设置监听

等待接受客户端的连接请求

接收数据

发送数据

关闭套接字

二,客户端

1,创建客户端套接字对象

导入import socket;

创建客户端 socket 对象 socket.socket(AddressFamily, Type),其中:

AddressFamily表示IP地址类型, 分为TPv4和IPv6,

Type 表示传输协议类型,

2,客户端套接字对象的方法

connect((host, port)) 表示和服务端套接字建立连接, host是服务器ip地址,port是应用程序的端口号,

send(data) 表示发送数据,data是二进制数据,

recv(buffersize) 表示接收数据, buffersize是每次接收数据的长度,

3,客户端程序

import socket

sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建客户套接字

sk.connect(('127.0.0.1', 8898)) # 尝试连接服务器

send_data = "你好服务端,我是客户端小黑!".encode("gbk")

sk.send(send_data)

print(send_data.decode('gbk'))

rev = sk.recv(1024) # 对话(发送/接收)

rev = rev.decode('gbk')

print(rev)

sk.close() # 关闭客户套接字

三,服务器端

1,创建客户端套接字对象

导入import socket;

创建客户端 socket 对象 socket.socket(AddressFamily, Type)

2,服务器端套接字对象的方法

bind((host, port)) 表示绑定端口号, host 是 ip 地址,port 是端口号,ip

地址一般不指定,表示本机的任何一个ip地址都可以。

listen (backlog) 表示设置监听,backlog参数表示最大等待建立连接的个数。

accept() 表示等待接受客户端的连接请求

send(data) 表示发送数据,data 是二进制数据

recv(buffersize) 表示接收数据, buffersize 是每次接收数据的长度

3. 服务器端程序

import socket

if __name__ == '__main__':

count = 0

while True:

sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sk.bind(('127.0.0.1', 8898)) # 把地址绑定到套接字

print("server:正在监听......")

sk.listen(12) # 监听链接

conn, addr = sk.accept() # 接受客户端链接

ret = conn.recv(1024) # 接收客户端信息

ret = ret.decode("gbk")

print(ret) # 打印客户端信息

count += 1

send_data = "你好客户端,我是服务器端小白!这是你第{}次向我打招呼".format(count).encode("gbk")

conn.send(send_data) # 向客户端发送信息

conn.close() # 关闭客户端套接字

sk.close() # 关闭服务器套接字(可选)

四,程序运行

1,先运行服务器端程序:

2,再运行客户端程序:

本文地址:https://blog.csdn.net/dangfulin/article/details/107640513

希望与广大网友互动??

点此进行留言吧!



推荐阅读
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 1.创建目录mkdir-phomerocketmqnamesvr1data&&mkdir-phomerocketmqnamesvr1log&&mkdir-phomerocketm ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 思科IOS XE与ISE集成实现TACACS认证配置
    本文详细介绍了如何在思科IOS XE设备上配置TACACS认证,并通过ISE(Identity Services Engine)进行用户管理和授权。配置包括网络拓扑、设备设置和ISE端的具体步骤。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
author-avatar
神烟醉_263
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有