This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UDP - TCP Socket examples, Issues - iperf3

Other Parts Discussed in Thread: CC3200

Hello, 

When i execute UDP example application and select to run as client i have iperf3 run as server on my Windows 8.1 PC, iperf3 does not display anything when CC3200 sends UDP packets.

When i execute TCP example application and select to run as client i have iperf3 run as server etc, and iperf3 displays this: " iperf3: error - unable to receive parameters from client: "

Tera Terminal CC3200 session always says Sent packet_number packets successfully

(note that in iperf-version3 there's no option for u -UDP- iperf3 opens any TCP/UDP port as needed)

When i execute either UDP or TCP examples and select to run as server, i run this command from my windows PC running iperf3 program as client:" iperf3 -c -u CC3200_IP_ADDRESS -i1 " [also i don't understand the -t 100000 argument. This sets the amount of time iperf3 will run. Maybe it was something else in iperf-1. Anyway, tried that too, doesn't work]. What iperf3 displays is this: " iperf3: error - unable to connect to server: Connection refused ". In case i specify a port in iperf3-client like this:"iperf3 -u -c 192.168.1.66 -i1 -V -p5001 -t10000"  iperf3 displays:"iperf3: error - unable to connect to server: Operation not permitted". In every scenario CC3200 Tera Term session just hangs saying: "Receiving UDP packets...".

In order to send packets to CC3200 it's ports must be open and listening. Are they? Because from what i see on Wireshark, i send packets to a new port every time. Are they all open and listening? As far as i'm concerned the PORT_NUM parameter in the code only specifies the port of the end point that connects to CC3200, not the ports of CC3200 itself.

Also note that i'm able to ping CC3200 from the terminal.

I've also tried many possible arguments in sl_Socket() command and made some minor other mods in the code, with no success.

I've tried many different combinations of these commands both on my desktop windows 8.1 pc and my ubuntu 15.10 laptop that are on the same network as CC3200 and nothing works. I also disabled firewalls on my windows pc (both software firewall and windows firewall), still the same output. Also on each computer i have Wireshark up and running and when CC3200 runs as client it shows the packets coming to my PC as they should, but when my PC is the client it doesn't display any packets leaving the PC.

I've run many other examples with my CC3200 rev4.1 and they all work fine, no glitches. Now i want to create my own application that uses UDP communication to connect from CC3200 to my PC and transfer data. But before i do that i have to make sure that UDP and TCP examples work and unfortunately they don't. On iperf's website it clarifies that iperf3 is incompatible with iperf, but i don't think this is an issue.

Now i'm at a deadlock and i don't know how to make this work. Can someone please help me, tell me what's going on, how to make this work? What am i missing? I require your knowledge, please. Thanks in advance!

Nick.

  • I found the solution. iperf3 is incompatible. I'm not sure exactly why that is. If anyone has any input please say. Anyway, i downloaded the latest version of iperf (not version 3) which you can easily get on their website, it's a 32 bit only version (maybe this has a role to play) and everything works fine. Thanks.
  • Hi Nick

    I also had a few problems when I start to work with both examples, TCP and UDP. What I do is use a terminal call Hercules. With that terminal you can run TCP and UDP sockets as server or client. The example of the SDK sends a lot of packets and Hercules may hangs so I recommend you reduce the number of packets sent and the number of times that it sends them with the next defines:

    #define BUF_SIZE 1400
    #define TCP_PACKET_COUNT 1000

    You can try with a BUF_SIZE and a TCP_PACKET_COUNT of 10 both, like that you just send 100 packets and you will see that you succesfully received it in Hercules. Also is important to turn off your antivirus, if you don't do it the example won't work. Play with those defines and also see how it works the functions, any doubt feel free to ask.
    I have tried sending the 1000*1400 packets and works so don't worry about that. The Hercules is just to see what are you receiving and like prints the data receive it hangs when you receive too much data, because of that I suggest you reduce the amount of data, just to check the functionality of the examples.

    Regards, Juan
  • Everything's working for me now both with Hercules and iPerf. The BUZ_SIZE and TCP_PACKET_COUNT don't pose an issue though. Any host may be able to receive as much packets as you want to send to it. It's all good now though. Thanks.
  • Hi Nick

    Glad to hear that, I know you should be able to receive all the packets, maybe my computer is a little bit slow and because of that hangs when I have to print all the data that comes in the packets, the same happens when I use LabVIEW, if I process the data the speed becomes a slower if a just count how many packets I'm receiving, no problems.

    Regards, Juan.