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

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

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

    [吐槽] 网上的代码害死人,看着都写的言之凿凿,可运行就是有问题. 有些爱好代码.喜欢收藏代码的朋友,看到别人的代码就粘贴复制过来.可是起码你也试试运行看啊大哥 [正文] 昨日修改运行了UDP协议的C ...

  2. python+soket实现UDP协议的局域网广播程序

    # udp_gb_server.py '''服务端(UDP协议局域网广播)''' import socket s = socket.socket(socket.AF_INET, socket.SOCK ...

  3. UDP协议实现客户服务器数据交互

    UDP协议实现客户服务器数据交互 按照往常一样将今天自己写的题目答案写在了博客上习题:客户端循环发送消息给服务端,服务端循环接收,并打印出来,直到收到Bye就退出程序. package network ...

  4. winsock 编程(简单客户&服务端通信实现)

    winsock 编程(简单客户&服务端通信实现) 双向通信:Client send message to Server, and if  Server receive the message, ...

  5. TCP协议下的服务端并发,GIL全局解释器锁,死锁,信号量,event事件,线程q

    TCP协议下的服务端并发,GIL全局解释器锁,死锁,信号量,event事件,线程q 一.TCP协议下的服务端并发 ''' 将不同的功能尽量拆分成不同的函数,拆分出来的功能可以被多个地方使用 TCP服务 ...

  6. 【C#】教你纯手工用C#实现SSH协议作为GIT服务端

    SSH(Secure Shell)是一种工作在应用层和传输层上的安全协议,能在非安全通道上建立安全通道.提供身份认证.密钥更新.数据校验.通道复用等功能,同时具有良好的可扩展性.本文从SSH的架构开始 ...

  7. CAS 5.1.x 的搭建和使用(四)—— 配置使用HTTP协议访问的服务端

    CAS单点登录系列: CAS 5.1.x 的搭建和使用(一)—— 通过Overlay搭建服务端 CAS5.1.x 的搭建和使用(二)—— 通过Overlay搭建服务端-其它配置说明 CAS5.1.x ...

  8. PHP服务端如何通过程序将图上传到指定的图片服务器与图片服务器的优化方案

    一:PHP服务端如何通过程序将图上传到指定的图片服务器与图片服务器的优化方案 (1) php服务器把图片处理成缩率图或指定大小的图片在通过PHP程序代码 操作FTP 上传到图片服务器. 二:图片服务器 ...

  9. Python中的UDP协议应用之飞秋应用-单IP版本

    UDP协议是无连接的.不稳定的网络通信协议. 通过使用飞秋端口(2425),以及模拟飞秋消息格式实现使用UDP协议对飞秋进行通信. 飞秋通信格式: '1:1000:66:%s:32:%s' 以冒号分割 ...

随机推荐

  1. 不同服务器数据库之间的数据定时同步到sql server (支持mysql,oracle数据库同步到sql server)

    1,在目标数据库新增服务器对象->连接到服务器->新建服务器连接 2,编写数据同步业务PROC ALTER PROC TestProc AS BEGIN --打开完全事物回滚 SET XA ...

  2. [CENTOS7] 加入Windows域

    This following article is a snapshot from: https://www.rootusers.com/how-to-join-centos-linux-to-an- ...

  3. Java简单方法批量修改Windows文件夹下的文件名(简单IO使用)

    package test.tttt; import java.io.File; import java.util.ArrayList; import java.util.List; public cl ...

  4. 使用jqGrid过程中出现的问题

    在使用jqGrid过程中,需要后台查询数据添加到表格中,在js中循环调用addRowData方法时出现浏览器崩溃现象. 原因:jqGrid的addRowData方法中做了一系列的处理,在后台返回数据量 ...

  5. 用tableView实现的一种加载数据的布局

    用tableView实现的一种加载数据的布局 此博文是应朋友之邀解决他的业务逻辑问题 效果: 素材: 源码: ImageCell.h 与 ImageCell.m // // ImageCell.h / ...

  6. UITableVIew与UICollectionView带动画删除cell时崩溃的处理

    UITableVIew与UICollectionView带动画删除cell时崩溃的处理 -会崩溃的原因是因为没有处理好数据源与cell之间的协调关系- 效果: tableView的源码: ModelC ...

  7. 获取INET4与INET6的信息

    获取INET4与INET6的信息 参考书籍: 本人封装的源码: // // IPAddressInfo.h // YXNETWORK // // http://www.cnblogs.com/YouX ...

  8. C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数

    各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 输出: 解释: 各位相加的过程为: + = , + = . 由于 是一位数,所以返回 . 进阶:你可以 ...

  9. SpringBoot整合Redis初实践

    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. 有时,为了提升整个网站的性能,在开发时会将经常访问的数据进行缓存,这样在调用这个数据接口时,可以提 ...

  10. 一、动态网络编程的概念 二、Tomcat服务器搭建 三、Servlet组件介绍

    一.动态网络编程的概念 动态网页:结合了HTML以外的高级程序编程语言和数据库技术生成的页面. 动态网页编程技术: ASP,PHP,JSP HTTP协议:规范浏览器和服务器之间通信的数据格式. 浏览器 ...