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()
    

    运行结果如图:  

  • 相关阅读:
    java_类承继其他类的内部类例子
    java_接口和抽象类的区别
    java_数组作缓存池的不可变类实例
    C++_归并排序(纯C版)
    C++_归并排序
    C++_快速排序(纯C版本)
    C++_快速排序
    C++_直接插入排序(纯C版)
    C++_直接插入排序
    自定义比较器的用法
  • 原文地址:https://www.cnblogs.com/areful/p/10381294.html
Copyright © 2011-2022 走看看