zoukankan      html  css  js  c++  java
  • Python下socket通信

    Server端代码:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # Author: areful
    
    # a server example which send hello to client.
    
    import socket
    import threading
    import time
    
    
    def tcp_link(_sock, _addr):
        print('Accept new connection from %s:%s...' % _addr)
        _sock.send(bytes('Welcome!', encoding='utf-8'))
        while True:
            data = _sock.recv(1024)
            time.sleep(1)
            if data == 'exit' or not data:
                break
            _sock.send(bytes('Hello, %s!' % data, encoding='utf-8'))
        _sock.close()
        print('Connection from %s:%s closed.' % _addr)
    
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(('127.0.0.1', 9999))
    s.listen(5)
    print('Waiting for connection...')
    while True:
        sock, addr = s.accept()
        t = threading.Thread(target=tcp_link, args=(sock, addr))
        t.start()
    

    Client端代码:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # Author: areful
    
    'a socket example which send echo message to server.'
    
    import socket
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(('127.0.0.1', 9999))
    print(s.recv(1024))
    for data in ['Michael', 'Tracy', 'Sarah']:
        s.send(bytes(data, encoding='utf-8'))
        print(s.recv(1024))
    s.send(bytes('exit', encoding='utf-8'))
    s.close()
    

    运行结果如图:  

  • 相关阅读:
    cmake使用总结
    Fatal error RC1015: cannot open include file "xxxx.h" vs2008
    可重入函数(转)
    《左耳听风》-ARTS-打卡记录-第十二周
    异常声明
    QString与const char *相互转换
    Qt中使用子线程去关闭弹出框
    什么是反向代理
    【GOJ 3002】颜色
    【GOJ 2296】毛毛虫
  • 原文地址:https://www.cnblogs.com/areful/p/10381294.html
Copyright © 2011-2022 走看看