You are binding same socket to mutiple Endpoint objects , that's why you are getting an InvalidArgument exception , You can bind one socket to only one IPEndPoint object at a time.
As you are trying to listen on Public IP address and on Local IP , please try this one
IPEndPoint ep = new IPEndPoint(IPAddress.Any, yourportnumber );
sck.Bind(ep) ;
this will create a listener that listen on All the ip addresses of your PC , Otherwise you better use a Seperate socket object
IF I were you , I would not parse local IPAddress
from a textbox
instead i would use something like IPAddress.Loopback