聊天器简易版

使用udp实现一个简单的聊天器程序,要求如下:

  • 在一个电脑中编写1个程序,有2个功能
  • 1.获取键盘数据,并将其发送给对方
  • 2.接收数据并显示
  • 并且功能数据进行选择以上的2个功能调用

例子程序如下:

import socket

def send_message(udp_socket):

        # 输入对方的ip/port
dest_ip = input("请输入对方的ip:")
dest_port = int(input("请输入对象的port:")) # 读取输入的数据
send_data = input('请输入要发送的数据:') # 发送数据
dest_addr = (dest_ip, dest_port)
udp_socket.sendto(send_data.encode('GBK'), dest_addr) def recv_message(udp_socket): # 接收数据
recv_data = udp_socket.recvfrom(1000)
print("%s:%s" % (recv_data[1], recv_data[0].decode("utf-8"))) def main():
# 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) while True:
send_message(udp_socket)
recv_message(udp_socket) # 关闭
udp_socket.close() if __name__ == '__main__':
main()

运行程序:

在聊天助手中进行交互:

聊天器灵活版

上面实现的聊天虽然可以使用,但是不太方便,我们希望是发送消息还是接受消息,可以自己选择,这样就方便的多。如下的程序运行输入三个命令来选择要执行的操作,程序如下:

  • 1表示发送数据
  • 2表示接收数据
  • 0表示退出
import socket

def send_message(udp_socket):

        # 输入对方的ip/port
dest_ip = input("请输入对方的ip:")
dest_port = int(input("请输入对象的port:")) # 读取输入的数据
send_data = input('请输入要发送的数据:') # 发送数据
dest_addr = (dest_ip, dest_port)
udp_socket.sendto(send_data.encode('GBK'), dest_addr) def recv_message(udp_socket): # 接收数据
recv_data = udp_socket.recvfrom(1000)
print("%s:%s" % (recv_data[1], recv_data[0].decode("utf-8"))) def main():
# 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) while True: op = input("请输入您要执行的操作:") if op == "1":
send_message(udp_socket)
elif op == "2":
recv_message(udp_socket)
elif op == "0":
break
else:
print("您的输入有误!") # 关闭
udp_socket.close() if __name__ == '__main__':
main()

在ubuntu安装网络助手

将下载好的网络助手的安装包(mNetAssist-release-amd64.deb)拷贝到桌面,执行如下操作:

$ cd ~/Desktop
$ sudo dpkg -i mNetAssist-release-amd64.deb
[sudo] password for xxxx:
Selecting previously unselected package mnetassist.
(Reading database ... 182763 files and directories currently installed.)
Preparing to unpack mNetAssist-release-amd64.deb ...
Unpacking mnetassist (0.1.1) ...
Setting up mnetassist (0.1.1) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5.1) ...
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.59ubuntu1) ...

如果没有抱错,安装成功,点击左上角的启动栏,输入mnetAssist

点击图标启动应用即可。

最新文章

  1. Spring MVC中的ModelMap作用及用法
  2. 【小白的CFD之旅】11 敲门实例【续】
  3. Rect 和 Bounds
  4. java获得汉语首字母
  5. struts2默认action
  6. android 区分wifi是5G还是2.4G
  7. ios错误修改了系统头文件
  8. Java中修饰符
  9. this的相关介绍与用法
  10. 从零开始学习前端JAVASCRIPT — 2、JavaScript基础ES5
  11. 关于hibernate中hql语句 case when的写法
  12. Andriod Studio科普篇——3.关于gradle插件的常见问题
  13. Dvna for Owasp top 10 2017
  14. Response内置对象
  15. python numpy笔记(重要)
  16. 【转】通过xml处理sql语句时对小于号与大于号的处理转换
  17. ASP.NET Web API 入门 (API接口、寄宿方式、HttpClient调用)
  18. Java中的sun.misc.Unsafe包
  19. ftp server安装与配置
  20. Github 创建新分支

热门文章

  1. iOS开发之ReactiveCocoa下的MVVM
  2. Photon自定义加载Resource之外的资源
  3. 大叔学ML第一:梯度下降
  4. Python selenium webdriver设置js操作页面滚动条
  5. 吴恩达机器学习笔记24-神经网络的模型表示1(Model Representation of Neural Network I)
  6. Web前端JQuery面试题(二)
  7. ruby-super用法
  8. CentOS随笔——关机命令
  9. AI - 学习路径(Learning Path)
  10. Tools - 电子书