zoukankan      html  css  js  c++  java
  • Python--网络编程-----socket代码实例--聊天软件升级版

    服务端代码:

     1 import socket
     2 
     3 HOST = ''
     4 PORT = 50007
     5 
     6 sock_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     7 sock_server.bind((HOST, PORT))
     8 
     9 sock_server.listen(1)
    10 
    11 while True:
    12     conn, addr = sock_server.accept()
    13 
    14     with conn:
    15         print('Connected by', addr)
    16         while True:
    17             try:
    18                 data = conn.recv(1024)
    19                 print("server recv:", conn.getpeername(), data.decode())
    20                 if not data:
    21                     break
    22 
    23                 conn.send(data.upper())
    24                 print("send to alex:", data)
    25             except ConnectionResetError:
    26                 break

    客户端1代码:

    import socket
    
    HOST = 'localhost'
    PORT = 50007
    
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect((HOST, PORT))
    
    while True:
        msg = input(">>>:").strip()
        if len(msg) == 0:
            continue
        client.sendall(msg.encode())
    
        data = client.recv(1024)
    
        print('Received', data.decode())

    客户端2代码:

     1 import socket
     2 
     3 HOST = 'localhost'
     4 PORT = 50007
     5 
     6 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     7 client.connect((HOST, PORT))
     8 
     9 while True:
    10     msg = input(">>>:").strip()
    11     if len(msg) == 0:
    12         continue
    13     client.sendall(msg.encode())
    14 
    15     data = client.recv(1024)
    16 
    17     print('Received', data.decode())

    先开启服务端,然后开启客户端1,客户端2,在客户端1输入信息能够收到服务端的响应信息,在客户端2输入信息不能收到服务端的响应信息,此时断开客户端1 的连接,客户端2可以正常收到服务端的响应信息,

    客户端1运行结果:

    1 >>>:客户端1
    2 Received 客户端1
    3 >>>:
    4 Process finished with exit code 1

    客户端2运行结果:

    1 >>>:客户端2
    2 Received 客户端2
    3 >>>:

    服务端运行结果:

    1 Connected by ('127.0.0.1', 58852)
    2 server recv: ('127.0.0.1', 58852) 客户端1
    3 send to alex: b'xe5xaexa2xe6x88xb7xe7xabxaf1'
    4 Connected by ('127.0.0.1', 58857)
    5 server recv: ('127.0.0.1', 58857) 客户端2
    6 send to alex: b'xe5xaexa2xe6x88xb7xe7xabxaf2'
  • 相关阅读:
    Count and Say leetcode
    Find Minimum in Rotated Sorted Array II leetcode
    Find Minimum in Rotated Sorted Array leetcode
    Search in Rotated Sorted Array II leetcode
    search in rotated sorted array leetcode
    Substring with Concatenation of All Words
    Subsets 子集系列问题 leetcode
    Sudoku Solver Backtracking
    Valid Sudoku leetcode
    《如何求解问题》-现代启发式方法
  • 原文地址:https://www.cnblogs.com/xudachen/p/8799366.html
Copyright © 2011-2022 走看看