接收udp的时候接收不了.本机发本机收。发没问题.收却收不到??请看.....

luluso 2004-10-31 01:45:27
按照msdn上的.我使用了它的发送实例发送。可以.防火墙有提示。但我接收却出问题,就是收不到..
我关了防火墙测试下也不行..
哪位试了这例子成功的,说下!!!
msdn原地址如下:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconusingudpservices.htm
附接收端代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UDPMulticastSender {

private static IPAddress GroupAddress =
IPAddress.Parse("127.0.0.1");
private static int GroupPort = 11000;

private static void Send( String message) {
UdpClient sender = new UdpClient();
IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort);

try {
Console.WriteLine("Sending datagram : {0}", message);
byte[] bytes = Encoding.ASCII.GetBytes(message);

sender.Send(bytes, bytes.Length, groupEP);

sender.Close();

} catch (Exception e) {
Console.WriteLine(e.ToString());
}

}

public static int Main(String[] args) {
Send(args[0]);

return 0;
}
}
...全文
316 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
luluso 2004-11-03
  • 打赏
  • 举报
回复
偶再试试看...
52juanjuan 2004-11-03
  • 打赏
  • 举报
回复
UP
cnhgj 2004-11-03
  • 打赏
  • 举报
回复
Byte[] receiveBytes = _udpServer.Receive(ref RemoteIpEndPoint);
Msg = Encoding.GetEncoding("gb2312").GetString(receiveBytes);
Rev_Edit.Text += Msg + "\r\n";
popcorn 2004-11-03
  • 打赏
  • 举报
回复
楼主代码里好象没有read部分啊?
每次我一streamReader.ReadLine()就假死机了,也不明白怎么回事.
luluso 2004-11-03
  • 打赏
  • 举报
回复
我只想知道msdn那个例子哪里错了,,为什么会收不到!
cnhgj 2004-10-31
  • 打赏
  • 举报
回复
前段时间写的一个小类

using System;
using System.Net;
using System.Text;
using System.Net.Sockets;
using System.Windows.Forms;

namespace UDP
{
/// <summary>
/// udp 的摘要说明。
/// </summary>
public class udp
{
public udp()
{

}

private TextBox _Rev_Edit;
private UdpClient _udpServer;
private UdpClient _udpClient;
private bool _Connectioned;

/// <summary>
/// 设置接收文本的TEXTBOX
/// </summary>
public TextBox Rev_Edit
{
get
{
return _Rev_Edit;
}
set
{
_Rev_Edit = value;
}
}

/// <summary>
/// 获取连接状态
/// </summary>
public bool Connectioned
{
get
{
return _Connectioned;
}
}

/// <summary>
/// 开始监听
/// </summary>
public void ListenerStart()
{
if (_Connectioned) return;
_udpServer = new UdpClient(9999);
IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Parse(getLocalIPAddress()), 9999);
string Msg;
try
{
_Connectioned = true;
Rev_Edit.Text += "已启动\r\n";
for(;;)
{
Byte[] receiveBytes = _udpServer.Receive(ref RemoteIpEndPoint);
Msg = Encoding.GetEncoding("gb2312").GetString(receiveBytes);
if (Msg == "exit")
{
return;
}
Rev_Edit.Text += Msg + "\r\n";
}
}
catch(Exception ex)
{
Rev_Edit.Text += ex.Message + "\r\n";
}
finally
{
_udpServer.Close();
}
}

/// <summary>
/// 发送消息
/// </summary>
/// <param name="Msg">消息文本</param>
/// <param name="IP">对方IP</param>
/// <param name="Port">对方PORT</param>
public void SendMsg(string Msg, string IP, int Port)
{
try
{
_udpClient = new UdpClient(1000);
byte[] sendBytes = Encoding.GetEncoding("gb2312").GetBytes(Msg);
_udpClient.Send(sendBytes, sendBytes.Length, IP, Port);
}
catch(Exception ex)
{
Rev_Edit.Text += ex.Message + "\r\n";
}
finally
{
_udpClient.Close();
}
}

/// <summary>
/// 断开监听
/// </summary>
public void DisListener()
{
SendMsg("exit",getLocalIPAddress(), 9999);
_Connectioned = false;
}

/// <summary>
/// 获取IP地址
/// </summary>
public string getLocalIPAddress()
{
IPHostEntry hostInfo = Dns.GetHostByName(Dns.GetHostName());
IPAddress[] address = hostInfo.AddressList;
return address.GetValue(0).ToString();
}

}
}

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧