zoukankan      html  css  js  c++  java
  • python_socket2

    socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
    
    socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)
    
    socket和file的区别:
    
    file模块是针对某个指定文件进行【打开】【读写】【关闭】
    socket模块是针对 服务器端 和 客户端Socket 进行【打开】【读写】【关闭】
    

    socket编程步骤

    Client端

    #创建一个socket连接服务器
    socket = socket.socket()

    #使用connect连接服务器,传的是个tuple
    socket.connect((host,port))

    #客户端发送数据,将string中的数据发送到连接的套接字,返回值是要发送的字节数量。
    socket.send(string)

    #通过递归调用send,将所有内容发送出去若成功返回None,若没成功则抛出异常
    socket.sendall(string)

    #设置接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数据量
    socket.recv(bufsize)

    #传输完毕后关闭套接
    socket.close()

      

    Server端

    #实例化socket对象socket = socket.socket()


    #bind服务器地址
    socket.bind(address)

    #设置监听,可以设置当时的并发数
    socket.listen(num)

    #设置连接返回(conn,addr)其中conn是新的套接对象,可以用来接收和发送数据
    #addr是连接客户端的地址
    conn,addr = socket.accept()

    #设置接收套接字,数据以字符串形式返回,bufsize指定最多可以接收的数量
    socket.recv(bufsize)

    #关闭socket通道
    socket.close()
    服务端
    import socket
    server = socket.socket()
    server.bind(("localhost",9999))
    server.listen()
    print ("wait..")
    conn,addr = server.accept()
    print (conn,addr)
    server.close()

      

    客户端
    import sockert
    client = socket.socket()
    client.connect("localhost",9999)
    client.close()
    <socket.socket fd=324, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1'6969), raddr=('127.0.0.1'4476)> ('127.0.0.1'4476)

      

  • 相关阅读:
    Linux命令格式
    Android SDK Manager下载,解决方案
    北大校长王恩哥送给毕业学生的十句话
    Andorid API Package ---> android.app
    Andorid API Package --->android.animation
    Andorid API Package ---> android.accessibilityservice
    Andorid API Package ---> android
    计算机经典书籍列表
    Ubuntu 10.04 下载android 4.1.1_r4
    canvas绘画基础(一):认识canvas画布
  • 原文地址:https://www.cnblogs.com/zoee/p/5871194.html
Copyright © 2011-2022 走看看