| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- # SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
- # SPDX-License-Identifier: Unlicense OR CC0-1.0
- import argparse
- import os
- import socket
- DEF_PORT = 3333
- DEF_MESSAGE = 'Data to ESP'
- def tcp_client(address: str, port: int, payload: str) -> str:
- for res in socket.getaddrinfo(address, port, socket.AF_UNSPEC,
- socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
- family_addr, _, _, _, addr = res
- try:
- sock = socket.socket(family_addr, socket.SOCK_STREAM)
- sock.settimeout(60.0)
- except socket.error as msg:
- print('Could not create socket')
- print(os.strerror(msg.errno))
- raise
- try:
- sock.connect(addr)
- except socket.error as e:
- print('Could not open socket: ' + str(e))
- sock.close()
- raise
- sock.sendall(payload.encode())
- data = sock.recv(1024)
- if not data:
- return ''
- print('Reply : ' + data.decode())
- sock.close()
- return data.decode()
- def main() -> None:
- parser = argparse.ArgumentParser()
- parser.add_argument('remote_ip', help='TCP server ip address, eg: 192.168.1.1, fe80::2%%eth0')
- parser.add_argument('--port', default=DEF_PORT, type=int, help='TCP server port')
- parser.add_argument('--message', default=DEF_MESSAGE, help='Message to send to the server.')
- args = parser.parse_args()
- print(f'Send message to the server: {args.remote_ip}')
- data = tcp_client(args.remote_ip, args.port, args.message)
- print(f'Received From server: {data}')
- if __name__ == '__main__':
- main()
|