码迷,mamicode.com
首页 > 其他好文 > 详细

网络编程[第二篇]基于udp协议的套接字编程

时间:2019-07-25 00:42:58      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:一个   数据   成功   服务端   无限循环   div   pre   不可   端口   

udp协议下的套接字编程

一.udp是无链接的    不可靠的

而上篇的tcp协议是可靠的,会有反馈信息来确认信息交换的完成与否

基于udp协议写成的服务端与客户端,各司其职,不管对方是否接收到信息,只需自己发送了即可

二.客户端

import socket

#买手机  --  套接字家族 | 端口协议
phone = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#服务端地址
ip_port = (127.0.0.1,8001)
#实现多次发送信息
while True:
    #自定义一条信息
    msg = input(输入一条信息:)
   #若信息为空,会导致程序卡死,用if判断跳过此情况
    if not msg:
        continue
    # 接通电话后发信息  指定数据 和 服务端地址
    phone.sendto(msg.encode(utf-8),ip_port)
    print(向服务端发送信息:,msg)
    #接收反馈信息  指定一次接收的量
    data,addr = phone.recvfrom(10)
    print(成功接收到服务端反馈信息 )
#关机
phone.close()

 

三.服务端

import socket

#买手机  --  套接字家族 | 端口协议
phone = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

#买电话卡  --  监听一个地址- ip | 端口号
phone.bind((127.0.0.1,8001))

#多次接发信息  
while True:
    #电话接通后接收信息  指定一次接收信息的数量
    #返回数据 和 客户端地址
    data,addr = phone.recvfrom(10)
    print(接受到客户端信息为: ,data)
    #接收到信息后,反馈给client端一个信息,以告诉他已成功接收
    phone.sendto(data,addr)
    print(成功向客户端发送一个反馈信息)

    #完成一切操作后关掉link,再关机
link.close()
phone.close()

 

四.总结——简化

客户端:

cs = socket()   # 创建客户套接字
comm_loop:      # 通讯循环
    cs.sendto()/cs.recvfrom()   # 对话(发送/接收)
cs.close()                      # 关闭客户套接字

 

服务端:

1 ss = socket()   #创建一个服务器的套接字
2 ss.bind()       #绑定服务器套接字
3 inf_loop:       #服务器无限循环
4     cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送)
5 ss.close()                         # 关闭服务器套接字

 

网络编程[第二篇]基于udp协议的套接字编程

标签:一个   数据   成功   服务端   无限循环   div   pre   不可   端口   

原文地址:https://www.cnblogs.com/xxp1624/p/11241611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!