170203

 1625-5 王子昂 总结《2017年2月3日》 【连续第126天总结】
A. python 网络编程 60%
B. 在python中,主要使用socket模块来进行网络相关的编程。socket()函数被用来创建套接字,同时套接字也有自己的一套函数来提供基于套接字的网络通信。
    socket(sockey_family, socket_type, protocol=0)
    family可以填AF_VNIX和AF_INET,分别是基于文件和基于网络型。
    type可以填SOCK_STREAM和SOCK_DGRAM,分别是面向连接和无连接。
    protocol一般不填,默认值为0
    创建一个TCP/IP的套接字,应该:
      tcpSock=socket(socket.AF_INET,socket.SOCK_STREAM)
    TCP服务器的创建流程
    ss=socket()
    ss.bind()
    ss.listen()
    服务器循环
        cs=ss.accept()
        通信循环
             cs.recv()/cs.send()
         cs.close()
    ss.close()
    由于TCP服务器是一个面向连接的通信系统,因此在开始工作之前需要先将设置完成。服务器要处在某个端口上等待请求,必须监听连接。默认情况下accept()函数是阻塞式的,即程序在连接到来之前会处于挂起状态。
    一旦接受到一个链接,accept()函数就会返回一个单独的客户端套接字用于后续的通信。这样可以空出最初的服务器套接字来等待下一个请求。
    TCP客户端的创建流程
    cs=socket()
    cs.connect()
    通信循环
        cs.send()/cs.recv()
    cs.close()
    客户端的循环在两种情况下结束。用户没有输入任何内容,和服务器由于某种原因退出,导致recv()函数失败。
    很显然,如果先运行客户端,由于没有服务器在等待请求,客户端没办法做连接。服务器被动地等待连接,客户端则主动地创建连接。
    因此,要先开服务器再开客户端。
    UDP服务器流程
    ss=socket()
    ss.bind()
    服务器循环
        cs=ss.recvfrom()/ss.sendto(_
    ss.close()
由于数据报套接字是无连接的,因此不需要通讯连接来转接,只需要接收或者返回消息就可以了。
    UDP客户端流程
    cs=socket()
    通讯循环
        cs.sendto()/cs.recvfrom()
    cs.close()
    
C.明日计划
    python网络教程
    windows核心编程

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值