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()发送数据与客户端进行交互

  • 相关阅读:
    微信小程序之base64转为本地图片
    微信小程序之页面跳转方法
    一些收集的社区网址+学习网站、文档
    11-DOM介绍
    10-关于DOM的事件操作
    09-伪数组 arguments
    前端---css
    前端---html
    并发编程------网络IO模型、IO多路复用
    并发编程------协程
  • 原文地址:https://www.cnblogs.com/andylhc/p/9340147.html
Copyright © 2011-2022 走看看