客户端:
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()