python tcp服务器客户端demo

客户端:

import socket
import time
import os

def start_socket_client(alternate_ip,nport):
    tcpCliSock=None

    Addr = (alternate_ip,nport)
    timeout = 15 
    #setdefaulttimeout(timeout)#这里对整个socket层设置超时时间。
    try:
        tcpCliSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    except socket.error as e:
        print("Strange error creating socket: %s" % e)
        return None

    try:
        tcpCliSock.connect(Addr)
    except socket.gaierror as e:
        print("connecting to server: %s" % e)
        return None
    except socket.error as e:
        print("Connection error: %s" % e)
        return None

    now_deal_cmd_string = ""
    while(True):
        now_deal_cmd_string = “client test msg”
        tcpCliSock.sendall(now_deal_cmd_string .encode("ascii"))
        time.sleep(3)


    tcpCliSock.close()

if __name__ == '__main__':
    start_socket_client("192.168.6.66",9527)

  

服务器:

import threading
import socket
import time

def send_to_client(conn, addr,cmd):
    try:
        conn.sendall(cmd.encode("ascii"))
    except socket.error as e:
        print("send_to_client error:",e)

def deal_data(conn, addr):
    print('enter deal_data {0}'.format(addr))
    conn.settimeout(30)
    now_deal_cmd_string = ""
    while True:
        try:
            data = conn.recv(10240)
        except socket.timeout:
            print("deal_data socket.timeout")
            continue
        except socket.error as e:
            print("deal_data try except conn.recv error:",e)
            break

        if not data:
            print("deal_data conn.recv not data ")
            break

        now_deal_cmd_string += data.decode("ascii")
        print("all recv:",now_deal_cmd_string )
    try:
        conn.close()
    except:
        pass
    print('leave deal_data {0}'.format(addr))

def start_socket_server():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind(('0.0.0.0', 9527))
        s.listen(100)
    except socket.error as msg:
        print("start_socket_server  error:",msg)
        return
    print('start_socket_server  Waiting connection...')

    while 1:
        try:
            conn, addr = s.accept()
            t = threading.Thread(target=deal_data, args=(conn, addr))
            #t = multiprocessing.Process(target=deal_data, args=(conn, addr))
            t.start()
        except socket.error as msg:
            print("start_socket_server accept error:",msg)

if __name__ == '__main__':
    start_socket_server()
posted on 2022-04-20 10:26  DuoRuaiMi4567  阅读(76)  评论(0编辑  收藏  举报