i Hilfe benötigen senden :)Kann nicht dgram an externe IP
I Tonnen o Google-Suche und fand keine Antwort getan haben, hoffentlich kann mir hier jemand helfen :)
Also, ich bin writting einfache P2P-Video Chat-Client, der IP aus Textfeld erstellt und eine Verbindung mit dem "anderen" auf Port 5096 herstellt. So beginnt Problem, wenn ich versuche, eine Verbindung zu externer IP herzustellen. Der Listener empfängt keine Pakete und ich kann mein Bild nicht übertragen. Kann mir bitte jemand helfen?
Dies ist Code meines UdpPictureSender:
class UDPPictureSender
{
bool closedSender = false;
Socket sending_socket;
IPAddress send_to_address;
IPEndPoint sending_end_point;
MemoryStream imageMemoryStream;
public UDPPictureSender()
{
initializeUdpPictureSender();
}
public void initializeUdpPictureSender()
{
sending_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
send_to_address = IPAddress.Parse(ConnectionSettings.ipAdress);
sending_end_point = new IPEndPoint(send_to_address, 5096);
}
public void sendImage(Image image)
{
if (closedSender)
{
initializeUdpPictureSender();
}
imageMemoryStream = new MemoryStream();
image.Save(imageMemoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
Byte[] bytes = imageMemoryStream.GetBuffer();
sending_socket.SendTo(bytes, sending_end_point);
imageMemoryStream.Flush();
}
public void closeConnection()
{
sending_socket.Close();
send_to_address = null;
sending_end_point = null;
closedSender = true;
}
}
Dies ist der Code von UDPListener:
class UDPListener
{
private const int listenPort = 5096;
bool done = false;
bool stoped = false;
UdpClient listener;
IPEndPoint groupEP;
Image received_data;
byte [] receive_byte_array;
MemoryStream currentMemoryStream;
public UDPListener()
{
startupSettings();
}
public void startupSettings()
{
groupEP = new IPEndPoint(IPAddress.Any, listenPort);
listener = new UdpClient(listenPort);
}
public Image listenForImages()
{
if (stoped)
{
startupSettings();
stoped = false;
}
try
{
while (!done)
{
receive_byte_array = listener.Receive(ref groupEP);
currentMemoryStream = new MemoryStream(receive_byte_array);
received_data = Image.FromStream(currentMemoryStream);
return received_data;
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
listener.Close();
return null;
}
public void closeConnection()
{
listener.Close();
stoped = true;
}
}
mir jemand helfen?
Vielen Dank im Voraus
Ich überprüft, verwendet Trim(), und immer noch nichts. – hrza
@hrza was ist schwer zu verstehen? Sie übergeben eine ungültige Adresse (möglich) an IPAddress.Parse. 'Eine ungültige IP-Adresse wurde angegeben. Überprüfen Sie Ihren Code und sehen Sie, was übergeben wurde. –
Können Sie mir ein Beispiel für eine Zeichenfolge geben, die ich parsen sollte? – hrza