zoukankan      html  css  js  c++  java
  • python3实现socket通信

    目的:实现两台机器之间的通信。也就是说一个作为服务端(时刻监听接收数据),另一个作为客户端(发送数据)。

    Python实现的过程个人理解:

    • 1.服务端开始监听。
    • 2.客户端发起连接请求。
    • 3.服务端收到连接请求信息。
    • 3.客户端发送数据。
    • 4.服务端收到客户端的数据,并返回给客户端自定义的数据。
    • 5.客户端收到被返回的数据。
    • 重复3-5…………
    • 6.客户端或者服务端关闭这次通信。
    • socket百度百科:https://baike.baidu.com/item/socket/281150。socket是python的默认模块。

    socket_1serve.py 如下:

    # -*- coding: utf-8 -*-
    """
    Created on Wed Jul 18 16:42:50 2018
    
    @author: lihc
    """
    
    #==============================================================================
    # 1. TCP server端代码
    # #!/usr/bin/env python
    # #
    # # -*- coding:utf-8 -*-
    # #
    #==============================================================================
    
    from socket import *
    from time import ctime
    
    HOST = ''
    PORT = 21567
    BUFSIZE=1024
    ADDR=(HOST, PORT)
    
    tcpSrvSock=socket(AF_INET, SOCK_STREAM)
    tcpSrvSock.bind(ADDR)
    tcpSrvSock.listen(5)
    
    while True:
        print ('waiting for connection ...',ctime())
        tcpCliSock,addr = tcpSrvSock.accept()
        print ('... connected from:', addr)
        while True:
            data=tcpCliSock.recv(BUFSIZE)
            print("receive from 2:",data)
            if not data:
                break
            tcpCliSock.send(str.encode('[%s] %s'%(ctime(), data)))
            print ([ctime()],':',data)
        
        tcpCliSock.close()
    tcpSrvSock.close()

    socket_2client.py如下:

    # -*- coding: utf-8 -*-
    """
    Created on Wed Jul 18 16:46:33 2018
    
    @author: lihc
    """
    
    #==============================================================================
    # 2. TCP client端代码
    # #!/usr/bin/env python
    # #
    # # -*- coding:utf-8 -*-
    # #
    #==============================================================================
    
    from socket import *
    
    HOST='localhost'
    PORT=21567
    BUFSIZE=1024
    ADDR=(HOST, PORT)
    
    tcpCliSock=socket(AF_INET, SOCK_STREAM)
    tcpCliSock.connect(ADDR)
    
    while True:
        data = input('>')
        print(type(data))
        data = str.encode(data)
        print(data)
        if not data:
            break
        tcpCliSock.send(data)
        data=tcpCliSock.recv(BUFSIZE)
        if not data:
            break
        print (data)
    
    tcpCliSock.close()

    python之socket编程

    http://www.360doc.com/content/17/1005/06/36536556_692309867.shtml

    Socket编程】Python实现简易Web服务器

    Python之路【第六篇】:socket

    让我们一起来构建一个 Web 服务器

    telnet配置和telnet用法

    服务器端的基本流程:

    1.初始化socket()

    2.使用bind()绑定ip和端口号

    3 使用listen()监听消息

    4.获取客户端的套接字地址accept()

    5.使用recv()接收数据,send()发送数据与客户端进行交互

  • 相关阅读:
    洛谷 P1525 关押罪犯(并查集|二分图判定&二分答案)
    洛谷 P1948 [USACO08JAN]Telephone Lines S(贪心+最短路)
    洛谷 P1315 观光公交(贪心+模拟)
    洛谷 P3258 [JLOI2014]松鼠的新家(树上差分)
    【NOIP2001】统计单词个数
    【洛谷习题】皇后游戏
    【洛谷习题】木棍加工
    【SDOI2008】仪仗队
    【洛谷习题】末日的传说
    【洛谷习题】又是毕业季I
  • 原文地址:https://www.cnblogs.com/andylhc/p/9340147.html
Copyright © 2011-2022 走看看