# Python Socket library TCP client to Node-Red TCP Server Node not working

**URL:** <https://discourse.nodered.org/t/python-socket-library-tcp-client-to-node-red-tcp-server-node-not-working/81714>\
**Category:** General\
**Created:** [2 October 2023 08:44 UTC](https://discourse.nodered.org/t/python-socket-library-tcp-client-to-node-red-tcp-server-node-not-working/81714 "2023-10-02T08:44:10Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Open1333](https://avatars.discourse-cdn.com/v4/letter/o/278dde/32.png) [@Open1333](https://discourse.nodered.org/u/Open1333)\
**Post date:** [2 October 2023 08:44 UTC](https://discourse.nodered.org/t/python-socket-library-tcp-client-to-node-red-tcp-server-node-not-working/81714/1 "2023-10-02T08:44:10Z")

</div>

Hi,

I am trying to send Python TCP client message to Node-Red TCP Server Node.

I am using [Python Socket library](https://docs.python.org/3/library/socket.html).

But however i am not able to receive the message in my Node-Red TCP in Server Node.  
I am able to receive Python TCP client message to Python TCP Server via the Python Socket Library.

Please help.

---

<div class="post-metadata">

**Author:** ![Open1333](https://avatars.discourse-cdn.com/v4/letter/o/278dde/32.png) [@Open1333](https://discourse.nodered.org/u/Open1333)\
**Post date:** [2 October 2023 09:18 UTC](https://discourse.nodered.org/t/python-socket-library-tcp-client-to-node-red-tcp-server-node-not-working/81714/2 "2023-10-02T09:18:25Z")

</div>

Below is my Python TCP Client Source code

```auto
import serial
import socket
import datetime
import time

def connect_to_serial_port(port="COM3", baud_rate=115200, timeout=1):
    ser = serial.Serial(port, baud_rate, timeout=timeout)
    return ser

def send_scpi_command(ser, command):
    ser.write(command.encode() + b'\n')

def read_scpi_response(ser):
    result = ser.readline().decode().strip('OK/nOK/nOK/n')
    final = result.split('ADC')
    num = float(final[0])
    num = int(num * 1000)
    return num

def measure_current(ser):
    scpi_cmd = "conf:curr"
    send_scpi_command(ser, scpi_cmd)
    print("Current configuration set.")
    time.sleep(1) # 2-second interval
    scpi_cmd = "meas:show?"
    send_scpi_command(ser, scpi_cmd)

    response = read_scpi_response(ser)
    timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    print(f"[{timestamp}] Instrument response for current measurement: {response}")

    with open("instrument_log.txt", "a") as file:
        file.write(f"[{timestamp}] Current Measurement: {response}\n")

def send_data_to_receiver(ip, port, response):
    sender_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    receiver_address = (ip, port)
    sender_socket.sendto(str(response).encode(), receiver_address)
    sender_socket.close()
    

def main():
    receiver_ip = "127.0.0.1"
    receiver_port = 139
    ser1 = connect_to_serial_port()
    print("Connected to the instruments.")
    
    try:
        while True:
            response1 = measure_current(ser1)
            #response2 = measure_current(ser2)
            
            #response2s = str(response2)
            send_data_to_receiver(receiver_ip, receiver_port, response1)
            #send_data_to_receiver(receiver_ip, receiver_port, response2s)
             # Add a delay between measurements
    except KeyboardInterrupt:
        pass # Allow the user to exit the loop with Ctrl+C
    finally:
        ser1.close()
        
        

if __name__ == " __main__":
    main()

```

Node red Server node flow  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/9/193e87675a1574955ec4141434bedde85679a912.png)

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [2 October 2023 09:41 UTC](https://discourse.nodered.org/t/python-socket-library-tcp-client-to-node-red-tcp-server-node-not-working/81714/3 "2023-10-02T09:41:31Z")

</div>

Ports below 1024 are privileged so you either need to run as root (not advised) or enable access to that port as a user, or choose a port \> 1024.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [2 October 2023 14:48 UTC](https://discourse.nodered.org/t/python-socket-library-tcp-client-to-node-red-tcp-server-node-not-working/81714/4 "2023-10-02T14:48:07Z")

</div>

I'd also say that it looks like you aren't doing anything with Python that Node-RED itself couldn't do? Do you really need/want the extra complexity?

---

<div class="post-metadata">

**Author:** ![Open1333](https://avatars.discourse-cdn.com/v4/letter/o/278dde/32.png) [@Open1333](https://discourse.nodered.org/u/Open1333)\
**Post date:** [4 October 2023 06:51 UTC](https://discourse.nodered.org/t/python-socket-library-tcp-client-to-node-red-tcp-server-node-not-working/81714/5 "2023-10-04T06:51:50Z")

</div>

It has been solved, we are sending messages while using Python to listen, whereby we should only listen on only 1 device, and also port number we changed to \> 1024.

Thank you!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [18 October 2023 06:51 UTC](https://discourse.nodered.org/t/python-socket-library-tcp-client-to-node-red-tcp-server-node-not-working/81714/6 "2023-10-18T06:51:56Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
