secondly i can't optimise fucntion which call darwlines it's a function of qwt.
OK, so finally you have given us the first real clue about what is actually going on. Your performance problem is not in reading datagram packets from your socket, it is what you are doing with the data after you read them.

Apparently you are plotting this data using Qwt. When you run into a performance problem with Qwt, it almost always means you are trying to plot too much or plot it too frequently. Your processor gets completely tied up just drawing things.

In that case, don't do it whatever way you are trying to plot data. If you are causing Qwt to replot with every new point, then don't do that. Each time you change the data Qwt is plotting, it will redraw all of the data. Plot the data in larger chunks, or set up a QTimer that causes Qwt to update the plot only once very second or every 1/2 second. In almost every case, you don't need real time updates, but you can get by with frequent updates instead.