• Python网络编程


    Socket:

    Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

    Python提供了两个级别访问的网络服务:

    • 低级别的网络服务支持基本的 Socket,提供了标准的 BSD Sockets API ,可以访问底层操作系统Socket接口的全部方法。
    • 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

    socket()函数:

    Python中,使用 socket() 函数来创建套接字

    socket.socket(family,type,protocol)

    参数

    • family: 套接字家族可以使AF_UNIX(用于同一台机器进程间通信)或者AF_INET(用于Internet进程间通信)
    • type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM(流式套接字,主要用于TCP协议)SOCK_DGRAM(数据报套接字,主要用于UDP协议)
    • protocol: 一般不填默认为0.

    若创建 socket 函数失败,会抛出一个 socket.error 的异常,最好捕获

    以下为一个简单的C/S例子

    #server.py
    import socket  #导入socket模块
    import sys
    
    try:
        s = socket.socket() #创建socket对象
    except socket.error as msg:
        print('Failed to create socket. Error code: ' + str(msg[0]) + ' , Error message : ' + msg[1])
        sys.exit();
    host = socket.gethostname()  #获取本地主机名
    port = 12345  #设置端口
    s.bind((host, port))   #绑定端口
    
    localIP = socket.gethostbyname(socket.gethostname())#得到本地ip
    print ("local ip:%s "%localIP)
    
    s.listen(5)   #等待客户端连接
    while True:
        connection, addr = s.accept()  #建立客户端连接
        print('连接地址: ', addr)
        connection.send('welcome...'.encode())
        print('Done!')
        connection.close()  #关闭连接
    #client.py
    import socket   #导入socket模块
    
    s = socket.socket()   #创建socket对象
    host = socket.gethostname() #获取本地主机名
    port = 12345
    
    s.connect((host, port))
    data = s.recv(1024)
    print(data.decode())
    s.close()

    Socket对象方法:

    一篇值得学习的博客

  • 相关阅读:
    7天入门JavaScript,第一天
    linux 下 启动web项目报 java.net.UnknownHostException
    HashMap 和 Hashtable
    Servlet 两种跳转方式
    SpringMVC
    把当前时间(NSDate)转为字符串
    写入数据到Plist文件中时,第一次要创建一个空的数组,否则写入文件失败
    实现多个UIView之间切换的动画效果
    missing required architecture x86_64 in file 不支持64位
    获取IOS bundle中的文件
  • 原文地址:https://www.cnblogs.com/dear_diary/p/8315486.html
Copyright © 2020-2023  润新知