网络编程基础(一)

    •   TCP/IP协议
      •   OSI/RM协议
      •   特点:独立于计算机硬件和操作系统,统一分配网络地址,提供可靠服务,隔离了物理网络的硬件差异
      •   协议分层(百度):网络接口层:IEE802.3(以太网协议集),IEEE802.4(令牌环网);网络层(IP);传输层(tcp/udp);应用层(FTP/HTTP/SMTP/DNS)
    •   IP地址和端口
  • 网络编程基础(二)
    •   UDP协议
    •   TCP协议
    •   套接字Socket
      •   TCP连接的端点称作套接字
      •   表示方法:IP地址:端口号,一个socket就是:(ip地址:端口号)
      •   一个TCP连接就是两个套接字,也就是{(IP地址:端口号),(IP地址:端口号)}
      •   每一条TCP连接被两个套接字确定,同一个ip地址可以有不同的TCP连接,同一个端口号可以出现在不同的TCP连接中
    •   TCP和UDP的不同点
      •   TCP先建立连接,再通信,最后释放连接,udp不用连接
      •   TCP保证数据可靠交付;TCP不保证可靠交付,用户自行处理可靠性
      •   TCP连接开销大,UDP小;TCP使用实时性低,数据可靠性高的场合,UDP适合实用性高,数据可靠性低的场合
    •   TCP和UDP的相同点
      •   都位于TCP/IP协议的第四层
      •   为应用层提供服务,都要通过网际层来一线数据的传输ICMP协议
    •   TCP协议
      •   HTTP,FTP,TELNET,POP,SMTP
    •   UDP协议
      •   TFTP,DNS,SNMP,VOIP,QQ
  • 服务器端socket的建立
    •   C/S模式简介:客户/服务器模式,客户端为主动向服务器发出服务请求的一方。服务器一般在系统启动时自动调用运行,等待客户机的请求
      与C/S模式相对的是B/S(浏览器/服务器模式),客户端使用同意的浏览器,而不用装门部署,服务器和浏览器使用HTTP协议进行通信
    •   套接字网络编程
      •   TCP通信
      • Python--socket和threading编程
      •   UDP通信
      • Python--socket和threading编程
  • Python中的socket
    •   socket对象是支持网络通信的,socket对象支持使用TCP/UDP协议进行网络通信(只能选择其中一个协议)
    •   socket编程所需要的对象函数和常量
    •   创建套接字:socket.socket(family,type)   family表示套接字使用什么版本协议    Type=SOCK_STREAM(使用TCP)   type=sock_DGRAM(UDP协议)
    •   服务器端套接字的方法
      •   bind(address)绑定,address为(ip:port):将套接字绑定到本地主机的ip或者端口上;
      •   listen(backlog):开始Tcp转入连接。backlog拒绝连接前允许操作系统挂起的连接数,1-5
      •   accept():接收TCP连接,并返回连接上的套接字对象和客户端地址构成的元组。返回的连接上的套接字对象可用于接收和发送信息
    •   客户端socket对象的方法
      •   connect(address),address=(hostname,port)构成的元组,建立与服务器间的连接
    •   TCP协议的socket收发数据的方法
      •   recv(【buffersize】):接收数据,参数为接收最大数据量,返回接收的数据
      •   send(bytes)通过socket发送数据
      •   sendall(bytes)通过socket发送数据(返回前将数据都发送出去)
    •   UDP协议的socket收发数据方法
      •   recvfrom(与上面类似)
      •   sendto(bytes,address)发送的字节和指定发送的目的地址
    •   关闭socket;close()
    •   其他相关函数
      •   gethostname()返回本地主机名
      •   gethostbyname_ex(hostname)#返回元组(hostname,aliaslist,ipaddrrlist)
    •   用socket建立TCP服务器端方法
      •   基本步骤
        •   创建套接字并绑定地址,开始监听连接,接收连接并收发数据,关闭套接字
        • #coding=gbk
          
          import socket
          
          HOST = ''
          PORT = 321
          
          s=socket.socket()
          s.bind((HOST,PORT))
          
          s.listen(5)
          
          client,addr=s.accept()#接收客户端的连接,返回一个客户端,
          
          print('client address:',addr)
          
          while True:
              data = client.recv(1024)#接收数据
              if not data:#为空,断开连接
                  break
              else:
                  print('receive data :',data.decode('utf-8'))#数据不为空,输出
              client.send(data)#将数据发挥客户端
          client.close()
          s.close()
          View Code

相关文章:

  • 2021-07-26
  • 2021-09-06
  • 2021-05-28
  • 2021-05-01
  • 2021-07-25
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-27
  • 2021-11-27
  • 2021-11-27
  • 2021-11-27
相关资源
相似解决方案