我需要幫助:)無法發送DGRAM外部IP
我已經做噸Ø谷歌搜索,並沒有發現答案,希望有人能幫助我在這裏:)
所以,我書面方式簡單的P2P視頻聊天客戶端,它從文本框創建IP並連接到端口5096上的「其他」。所以,當我嘗試連接到外部IP時,問題就開始了。聽衆不會收到包裹,我無法傳送我的圖像。有人可以幫幫我嗎?
這是我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;
}
}
這是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;
}
}
誰能幫助我?提前
我檢查過,使用trim(),而且什麼也沒有。 – hrza 2012-03-25 21:22:13
@hrza什麼是難以理解的?您將無效地址(可能)傳遞給IPAddress.Parse。 '指定了無效的IP地址.'請檢查您的代碼並查看通過的內容。 – 2012-03-25 21:30:44
你能給我一個我應該解析的字符串的例子嗎? – hrza 2012-03-25 21:38:02