• 网络编程


    网络编程

    a,软件

      客户端: CS架构,client--> server

      浏览器:BS 架构 , browser --> server

    b,如何实现相互通信

      需求一:编写俩个软件,软件之间相互通信

      需求二:俩个人直接连接(网线)

      需求三: 教室相互通信(交换机)

          使用ip地址:ipconfig

      需求四:和三亚女友通信(交换机+n*路由器)

    c,基于socket模块实现网络通信

    import socket
    
    # 创建服务端socket对象
    server = socket.socket()
    
    # 绑定IP和端口
    server.bind(('192.168.13.155',8000))
    
    # 后边可以等5个人
    server.listen(5)
    
    print('服务端准备开始接收客户端的连接')
    # 等待客户端来连接,如果没人来就傻傻的等待。
    # conn是客户端和服务端连接的对象(伞),服务端以后要通过该对象进行收发数据。
    # addr是客户端的地址信息。
    # #### 阻塞,只有有客户端进行连接,则获取客户端连接然后开始进行通信。
    conn,addr = server.accept()
    
    print('已经有人连接上了,客户端信息:',conn,addr)
    
    
    # 通过对象去获取(王晓东通过伞给我发送的消息)
    # 1024表示:服务端通过(伞)获取数据时,一次性最多拿1024字节。
    data = conn.recv(1024)
    print('已经有人发来消息了',data)
    
    
    # 服务端通过连接对象(伞)给客户端回复了一个消息。
    conn.send(b'stop')
    
    # 与客户端断开连接(放开那把伞)
    conn.close()
    
    # 关闭服务端的服务
    server.close()
    

     理解socket

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的借口就是全部让Socket去组织数据,以符合指定的协议.

    为什么要网络通信发送的是字节?而不是字符串?

  • 相关阅读:
    MFC新建菜单项
    java连接mysql
    装visio 2007遇到了1706错误,解决办法
    Oracle协议适配器错误解决办法
    powershell 开启开发人员仪表盘
    sharepoint stsadm 创建网站脚本
    网站安全修复笔记1
    sharepoint ribbon添加菜单
    解决 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值
    RDA实现SQL CE与SQL Server间数据存取
  • 原文地址:https://www.cnblogs.com/y122988/p/9578736.html
Copyright © 2020-2023  润新知