zoukankan      html  css  js  c++  java
  • python网络编程-01

    python网络编程

    1.socket模块介绍

    ①在网络编程中的一个基本组件就是套接字(socket),socket是两个程序之间的“信息通道”。

    ②套接字包括两个部分:服务器套接字、客户机套接字

    ③一个套接字就是一个socket模块中的socket类的实例。

    如:

    import socket

    s=socket.socket()            #socket类实例化

    实例化需要3个参数:

    地址族:默认是socket.AF_INET

    流: 默认是socket.SOCK_STREAM

    使用的协议:默认是0

    对于一个普通的套接字,不需要提供任何参数。

    •  Socket类型:

     

    •   Socket函数:

     

    2. socket编程思路:

    •  Tcp服务端:

      1.创建套接字,绑定套接字到本地ip与端口  (socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.bind())

      2.开始监听连接   (s.listen())

      3.进入循环,不断接受客户端的连接请求  (s.accept())

      4.然后接收传来的数据,并发送给对方数据  (s.sendall(), s.recv())

      5.传输完毕后,关闭套接字。   (s.close())

    •  TCP 客户端:

      1.创建套接字,连接远端地址 (socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.connect())

      2.连接后关送数据和接收数据  (s.sendall(), s.recv() )

      3.传输完毕后,关闭套接字  (s.close())

     

    【实例】:

    >客户端部分

    import socket
    import time

    #编写一个客户端测试程序

    s = socket.socket()
    s.connect(('127.0.0.1',12306))
    data = s.recv(512)
    s.send('hello')
    time.sleep(2)
    s.close()
    print '收到服务端的消息是:',data

    >服务端部分
    import socket

    #编写一个服务端测试程序
    s = socket.socket()

    s.bind(('127.0.0.1',12306))
    s.listen(5)


    conn,address = s.accept()
    print "收到客户端地址信息:",address
    conn.send("ByeBye")
    ra = conn.recv(512)
    print "收到客户端发的消息:",ra
    s.close()

    3.socket其它应用 

    从网络上查找主机:

    import socket

    print socket.gethostname()   #查找当前主机的正式名字

    print socket.gethostbyname('www.baidu.com')        #将服务器名字转为数字地址

    print socket.gethostbyname_ex('www.baidu.com')   #访问更多有关服务器的更多命名信息

    print socket.gethostbyaddr('10.34.41.xx')               #通过ip来查看主机名

    返回结果:

    ll-RobotFrame
    115.239.210.26

  • 相关阅读:
    hibernate和ibatis的区别
    [转] hibernate和ibatis的对比
    如何理解java的引用传递
    代理模式与装饰器模式的区别
    j2ee的异步消息机制
    什么是j2ee ??EJB与j2ee的关系?? 请看百度百科
    spring事务的传播性的理解
    Hibernate与IBatis的优缺点及可行性分析
    jQuery插件实现的方法和原理简单说明
    iReport使用教程
  • 原文地址:https://www.cnblogs.com/yu2000/p/3432147.html
Copyright © 2011-2022 走看看