python+soket实现UDP协议的客户/服务端中文聊天程序-阿里云开发者社区

开发者社区> 罗兵> 正文

python+soket实现UDP协议的客户/服务端中文聊天程序

简介: 没什么特别的东西,网上烂大街的C/S框架。(基于windows 7 + python 3.4)   为了实现中文聊天,我加入了一点修改: msg.encode('utf-8') # msg 为输入(且将要发送出)的信息 data.decode('utf-8') # data 为接收的信息 这样做的原因是 sendto 函数只能发送ASCII字符,不支持发送中文(在 python3 中,中文默认是unicode编码)。
+关注继续查看

 

没什么特别的东西,网上烂大街的C/S框架。(基于windows 7 + python 3.4)

 

为了实现中文聊天,我加入了一点修改:

msg.encode('utf-8') # msg 为输入(且将要发送出)的信息

data.decode('utf-8') # data 为接收的信息

这样做的原因是 sendto 函数只能发送ASCII字符,不支持发送中文(在 python3 中,中文默认是unicode编码)。

所以,信息在送出之前要编码,在接收到信息之后要解码

 

完整的两个文件如下:

#udp-server.py
'''服务器'''

from socket import *

host = ''  #服务器地址
port = 12345  #服务器端口
bufsiz = 2048 #缓存大小
adds = (host, port) #地址+端口

udpsersock = socket(AF_INET, SOCK_DGRAM)  #创建UDP的套接字类型。
udpsersock.bind(adds)  #绑定到地址和端口

while True:
    msg = input('服务器说:')    #输入数据
    data, addc = udpsersock.recvfrom(bufsiz)
    udpsersock.sendto(msg.encode('utf-8'), addc)
    
    if not data: break
    print('客户端回答:', data.decode('utf-8'))
    
udpsersock.close()

 

#udp-client.py
'''客户端'''

from socket import *

host = 'localhost'  #本地服务器地址
port = 12345  #客户端端口(确保和服务器的端口一致
bufsiz = 2048 #缓存大小
addc = (host, port) #地址+端口

udpclisock = socket(AF_INET, SOCK_DGRAM)  #创建UDP的套接字类型。

while True:
    msg = input('客户端说:')    #输入数据
    udpclisock.sendto(msg.encode('utf-8'), addc)
    data, adds = udpclisock.recvfrom(bufsiz)
    
    if not data: break
    print('服务器回答:', data.decode('utf-8'))
    
udpclisock.close()

 

 

运行结果如图:

 

(吐槽:python的input怎么按回车键没用啊,只能Ctrl + D + Enter。  大侠救我!!!)

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
CXF客户端配置请求超时限制-SocketTimeoutException(Spring配置文件中配置和通过代码进行配置)
在用cxf  开发webservice应用时,客户端老报 java.net.SocketTimeoutException: Read timed out  原因为连接超时,google 参考链接  Spring下设置CXF的WebService客户端超时时长  http://ajava.org/course/open/16514.html  https://cwiki.ap
1344 0
python+soket实现 TCP 协议的客户/服务端中文(自动回复)聊天程序
【吐槽】 网上的代码害死人,看着都写的言之凿凿,可运行就是有问题。 有些爱好代码、喜欢收藏代码的朋友,看到别人的代码就粘贴复制过来。可是起码你也试试运行看啊大哥   【正文】 昨日修改运行了UDP协议的C/S聊天程序,可是TCP协议的怎么都不行。
1168 0
Windows英文版GitHub客户端使用操作流程图文攻略教程现没中文版
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。作为一个程序员,我们需要掌握其用法。 作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户。
1358 0
python+soket实现UDP协议的局域网广播程序
1 # udp_gb_server.py 2 '''服务端(UDP协议局域网广播)''' 3 4 import socket 5 6 s = socket.socket(socket.
784 0
阿里云物联网平台服务端订阅AMQP典型问题——Client failed to authenticate using SASL: PLAIN
服务端可以直接订阅产品下多种类型的消息:设备上报消息、设备状态变化通知、设备生命周期变更、网关发现子设备上报、设备拓扑关系变更等。配置服务端订阅后,物联网平台会将产品下所有设备的已订阅类型的消息转发至您的服务器。
1127 0
Android Bluetooth蓝牙客户端发起对服务端连接建立请求过程(高版本Android兼容)
Android Bluetooth蓝牙客户端发起对服务端连接建立请求过程(高版本Android兼容) 本例代码是蓝牙客户端代码,只完成连接建立请求,假定蓝牙服务端设备名是:Android-Phone。
823 0
Python socket编程客户端与服务端通信
[本文出自天外归云的博客园] 目标:实现客户端与服务端的socket通信,消息传输。 客户端 客户端代码: from socket import socket,AF_INET,SOCK_STREAM #服务端的ip地址 server_ip = '127.
852 0
+关注
罗兵
数学专业。擅数据分析,涉stock、lotto。了解随机过程分析、神经网络。涉web前端、后端。了解vba、js,稍擅python
251
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载