• Python的网络编程 Socket编程


    Socket是进程间通信的一种方式,与其他进程间通信的一个主要不同是:能实现不同主机间的进程间通信,网络上各种各样的服务大多都是基于Socket来完成通信的,要解决网络上两台主机间的通信问题,首先要唯一标识该进程,在TCP/IP网络协议中,就是通过(IP地址,协议,端口号)三元组来标识进程的,解决了进程标识问题,就有了通信的基础了

    TCP是一种面向连接的传输层协议,TCP Socket是基于一种Client-Server的编程模型,服务端监听客户端的连接请求,一旦建立连接即可以进行传输数据,那么,TCP Socket编程的介绍也分为客户端和服务端。

    客户端编程:

    1.创建Socket;2.连接到远程服务器;3.发送数据;4.接收数据;5.关闭socket

    当我们打开www.baidu.com时,浏览器所做的就是以上5个步骤,在Socket中具有这种行为特征的被称为Client,客户端主要是连接远程系统并获取数据;

    (Socket中另一种行为称为Server,服务器使用Socket来接收连接以及提供数据,和客户端正好相反,所以,www.baidu.com是HTTP服务器,浏览器是HTTP客户端)

    # _*_ encoding:utf-8 _*_
    import socket
    #1.创建Socket s = socket.socket() host = socket.gethostname() port = 12345 #2.建立与服务器的链接 s.connect((host,port)) #3.接收数据 print (s.recv(1024)) #4.发送数据 message = 'GET / HTTP/1.1 ' print (s.sendall(message)) #5.关闭连接 s.close()

    服务端编程:

    1.打开socket;2.绑定到特定的地址以及端口上;3.监听连接;4.建立连接;5.接收/发送数据 

    绑定Socekt:函数bind可以用来将socket绑定到特定的地址和端口上,绑定完成后,可以开启监听模式

    监听连接listen:将socket置于监听模式,该函数带有一个参数backlog,用来控制连接的个数,如果设为10,那么有10个连接正在等待处理,此时,第11个请求过来时,将会被拒绝。

    接收连接:当有客户端向服务器发送连接请求时,服务器会接收连接

    # _*_ encoding:utf-8 _*_
    
    import socket
    
    #1.创建socket对象
    s = socket.socket()
    
    #获取本地主机名
    host = socket.gethostname()
    
    #设置端口
    port = 12345
    
    #2.绑定端口
    s.bind((host,port))
    
    #3.等待客户端连接,监听socket对象
    s.listen(5)
    
    while True:
        c,addr = s.accept() #建立客户端连接
        print ('连接地址:',addr)
        c.send('欢迎访问百度!')
       #c.close() #关闭连接
    
  • 相关阅读:
    鸽巢原理 学习笔记
    POJ 1811 Prime Test
    Ubuntu下pdf乱码问题解决方法
    POJ 基础数学
    SRM遇到的一个数论技巧——最大公约数和最小公倍数的关系
    计算几何初步模板
    矩阵快速幂 学习笔记
    ZOJ 2849 Attack of Panda Virus (优先队列 priority_queue)
    欧几里德算法和扩展欧几里德算法
    记部分HASH函数
  • 原文地址:https://www.cnblogs.com/cindy-cindy/p/8006666.html
Copyright © 2020-2023  润新知