python+soket实现 TCP 协议的客户/服务端中文(自动回复)聊天程序

简介:

【吐槽】

网上的代码害死人,看着都写的言之凿凿,可运行就是有问题。

有些爱好代码、喜欢收藏代码的朋友,看到别人的代码就粘贴复制过来。可是起码你也试试运行看啊大哥

 

【正文】

昨日修改运行了UDP协议的C/S聊天程序,可是TCP协议的怎么都不行。各种试,各种坑。

做了下面几个修改后,终于可以了:

1、对发送、接收的信息,分别进行编码和解码

2、客户端的第13行bind改为connect(这真是个大坑!!

(本文基于windows 7 + python 3.4)

 

完整代码如下(人头担保,本人亲测正常!):

复制代码
 1 # tcp_server.py
 2 '''服务器'''
 3 
 4 from socket import *
 5 from time import ctime
 6 
 7 HOST = '' #主机地址
 8 PORT = 23345 #端口号
 9 BUFSIZ = 2048 #缓存区大小,单位是字节,这里设定了2K的缓冲区
10 ADDR = (HOST, PORT) #链接地址
11 
12 tcpSerSock = socket(AF_INET, SOCK_STREAM) #创建一个TCP套接字
13 tcpSerSock.bind(ADDR) #绑定地址
14 tcpSerSock.listen(5) #最大连接数为5
15 
16 while True: #无限循环
17     print('尝试连接客户端。。。')
18     tcpCliSock, addr = tcpSerSock.accept() #等待接受连接
19     print('链接成功,客户端地址为:', addr)
20     
21     while True:
22         data = tcpCliSock.recv(BUFSIZ) #接收数据,BUFSIZ是缓存区大小
23         if not data: break #如果data为空,则跳出循环
24         print(data.decode())
25 
26         msg = '{} 服务器已接收 [自动回复]'.format(ctime())
27         tcpCliSock.send(msg.encode())
28         
29     tcpCliSock.close() #关闭连接
30 
31 tcpSerSock.close() #关闭服务器
复制代码

 

 

复制代码
 1 # tcp_client.py
 2 '''客户端'''
 3 
 4 from socket import *
 5 from time import ctime
 6 
 7 HOST = 'localhost' #主机地址
 8 PORT = 23345 #端口号
 9 BUFSIZ = 2048 #缓存区大小,单位是字节,这里设定了2K的缓冲区
10 ADDR = (HOST, PORT) #链接地址
11 
12 tcpCliSock = socket(AF_INET, SOCK_STREAM) #创建一个TCP套接字
13 #tcpCliSock.bind(ADDR) #绑定地址
14 tcpCliSock.connect(ADDR) #绑定地址
15 
16 while True:
17     msg = input('请输入:') #输入数据
18     if not msg: break #如果 msg 为空,则跳出循环
19     tcpCliSock.send(msg.encode())
20     
21     data = tcpCliSock.recv(BUFSIZ) #接收数据,BUFSIZ是缓存区大小
22     if not data: break #如果data为空,则跳出循环
23     print(data.decode())
复制代码

 

【运行截图】

实验方法:先运行服务器端,然后运行客户端

 

然后就可以在客户端自由的与服务器端聊天了:

 

本文转自罗兵博客园博客,原文链接:http://www.cnblogs.com/hhh5460/p/4249326.html如需转载请自行联系原作者
相关文章
|
2天前
|
安全 API C语言
Python程序的安全逆向(关于我的OPENAI的APIkey是如何被盗的)
本文介绍了如何使用C语言编写一个简单的文件加解密程序,并讨论了如何为编译后的软件添加图标。此外,文章还探讨了Python的.pyc、.pyd等文件的原理,以及如何生成和使用.pyd文件来增强代码的安全性。通过视频和教程,作者详细讲解了生成.pyd文件的过程,并分享了逆向分析.pyd文件的方法。最后,文章提到可以通过定制Python解释器来进一步保护源代码。
23 6
|
14天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
25天前
|
存储 人工智能 数据挖掘
Python编程入门:打造你的第一个程序
本文旨在为初学者提供Python编程的初步指导,通过介绍Python语言的基础概念、开发环境的搭建以及一个简单的代码示例,帮助读者快速入门。文章将引导你理解编程思维,学会如何编写、运行和调试Python代码,从而开启编程之旅。
37 2
|
27天前
|
Python
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
43 5
|
26天前
|
存储 Python
Python编程入门:理解基础语法与编写简单程序
本文旨在为初学者提供一个关于如何开始使用Python编程语言的指南。我们将从安装Python环境开始,逐步介绍变量、数据类型、控制结构、函数和模块等基本概念。通过实例演示和练习,读者将学会如何编写简单的Python程序,并了解如何解决常见的编程问题。文章最后将提供一些资源,以供进一步学习和实践。
32 1
|
14天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
13天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
1天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
95 80
|
20天前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
131 59
|
13天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
38 10