python-网络编程-模拟聊天室

本文作者:黎智煊,叩丁狼高级讲师。原创文章,转载请注明出处。

udp应用:echo服务器

  • 模拟的是设置一个服务器,一旦有客户端发送数据到服务端,服务端马上响应消息给客户端,类似机器人自动回复.

参考代码

#coding=utf-8

from socket import *

#1. 创建套接字
udpSocket = socket(AF_INET, SOCK_DGRAM)

#2. 绑定本地的相关信息
bindAddr = ('', 7788) # ip地址和端口号,ip一般不用写,表示本机的任何一个ip
udpSocket.bind(bindAddr)

num = 1
while True:

    #3. 等待接收对方发送的数据
    recvData = udpSocket.recvfrom(1024) # 1024表示本次接收的最大字节数

    #4. 将接收到的数据再发送给对方
    udpSocket.sendto(recvData[0], recvData[1])

    #5. 统计信息
    print('已经将接收到的第%d个数据返回给对方,内容为:%s'%(num,recvData[0]))
    num+=1


#5. 关闭套接字
udpSocket.close()

演示过程


叩丁狼教育.png

叩丁狼教育.png

udp应用:聊天室

  • 这里模拟就是需要双方手动回复的聊天模式了.

参考代码:

#coding=utf-8

from socket import *
from time import ctime

#1. 创建套接字
udpSocket = socket(AF_INET, SOCK_DGRAM)

#2. 绑定本地的相关信息
bindAddr = ('', 7788) # ip地址和端口号,ip一般不用写,表示本机的任何一个ip
udpSocket.bind(bindAddr)

while True:

    #3. 等待接收对方发送的数据
    recvData = udpSocket.recvfrom(1024) # 1024表示本次接收的最大字节数

    #4. 打印信息
    print('【%s】%s:%s'%(ctime(),recvData[1][0],recvData[0]))


#5. 关闭套接字
udpSocket.close()
叩丁狼教育.png
叩丁狼教育.png

udp总结

  1. udp是TCP/IP协议族中的一种协议能够完成不同机器上的程序间的数据通信
  2. udp服务器、客户端
    udp的服务器和客户端的区分:往往是通过请求服务和提供服务来进行区分
  • 请求服务的一方称为:客户端
  • 提供服务的一方称为:服务器
  1. udp绑定问题
  • 一般情况下,服务器端,需要绑定端口,目的是为了让其他的客户端能够正确发送到此进程
  • 客户端,一般不需要绑定,而是让操作系统随机分配,这样就不会因为需要绑定的端口被占用而导致程序无法运行的情况

想获取更多技术干货,请前往叩丁狼官网:http://www.wolfcode.cn/all_article.html

你可能感兴趣的:(python-网络编程-模拟聊天室)