博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python+soket实现UDP协议的客户/服务端中文聊天程序
阅读量:7109 次
发布时间:2019-06-28

本文共 1251 字,大约阅读时间需要 4 分钟。

 

没什么特别的东西,网上烂大街的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。  大侠救我!!!)

 

本文转自罗兵博客园博客,原文链接:http://www.cnblogs.com/hhh5460/p/4246961.html
,如需转载请自行联系原作者
你可能感兴趣的文章
IDEA注册机
查看>>
微信APP支付 ,App无法调起微信
查看>>
Spring boot 内嵌tomcat,临时目录不存在 错误
查看>>
fedora16中virtualbox无法启动xp虚假机
查看>>
(十五)用JAVA编写MP3解码器——音频输出
查看>>
MyClouds开发指南》第1章 MyClouds微服务治理及快速开发平台简介
查看>>
用JDK制作可能运行的JAR
查看>>
开发人员如何转型做产品经理
查看>>
SVN 基本命令
查看>>
RTP协议分析
查看>>
boost_asio学习笔记[2] - 客户端异步通讯
查看>>
lucene全文搜索之排序
查看>>
SpringBoot之数据访问
查看>>
iOS逆向问题集锦
查看>>
python正则提取特定标签内的字符
查看>>
转:Android屏幕适配经验谈
查看>>
jquery ajax get post 的使用方法汇总
查看>>
50个必备的实用jQuery代码段
查看>>
网站安装打包 修改app.config[六]
查看>>
git 安装使用
查看>>