sl 中Socket的问题

zhanghe100 2010-01-14 03:29:36
//创建一个Socket用于监听4502端口,获取接收客户端发送过来的信息
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(IPAddress.Any, 4502));
socket.Listen(10);
List<Socket> _sock = new List<Socket>();
//无线循环监听
while (true)
{
//创建Socket,用来获取监听Socket的第一个Socket链接
Socket _client = socket.Accept();
//_client.EnableBroadcast = true;
#region 接受数据
byte[] b1 = new byte[32];
_client.Receive(b1);
Console.WriteLine(_client.RemoteEndPoint+Encoding.UTF8.GetString(b1));
#endregion
_client.Send(b1);
_sock.Add(_client);
//关闭当前Socket连接
_client.Close();
System.Threading.Thread.Sleep(5);
}
这是我的服务端监听代码,这样写可以接受到信息也可以发送到客户端
但是我在调试下他就会有错误不过不影响运行真是奇怪
_client是SOCKET的对像
EnableBroadcast = “_client.EnableBroadcast”引发了“System.Net.Sockets.SocketException”类型的异常
展开这个错误是这样
base {System.ComponentModel.Win32Exception} = {"在 getsockopt 或 setsockopt 调用中指定的一个未知的、无效的或不受支持的选项或层次。"}
EnableBroadcast 查了一下这个属性,说是允许接收或不接收信息的属性??
...全文
402 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hutren 2010-09-14
  • 打赏
  • 举报
回复
这个属性只对UDP有效,你建立的是tcp连接
hutren 2010-09-14
  • 打赏
  • 举报
回复
EnableBroadcast属性。获取或设置一个Boolean值,该值指定Socket是否可以发送或接收广播数据报。
语法:
public bool EnableBroadcast { get; set; }
注意:广播仅限于特定子网,并且必须使用用户数据报协议(UDP)。对于Internet协议版本4,可通过向255.255.255.255发送数据包来向本地子网广播;也可以使用定向广播地址,即Internet协议(IP)地址的网络部分,同时所有位都在主机部分设置。例如,如果IP地址是192.168.1.40(C类地址,网络掩码为255.255.255.0,网络部分是前3个八进制数,主机部分是最后一个八进制数),则定向广播地址是192.168.1.255。
(4)MulticastLoopback属性。获取或设置一个值,该值指定传出的多路广播数据报是否传递到发送应用程序。
语法:
public bool MulticastLoopback { get; set; }
注意:多路广播是一种适用于Internet上的多对多通信的可伸缩方式。一个进程预订多路广播地址;之后,已预订进程发送的所有数据报都由预订该多路广播地址的所有其他进程接收。对传输控制协议(TCP)套接字设置此属性不起任何作用。
纷享刘晨 2010-01-18
  • 打赏
  • 举报
回复
服务端当然可以

Silverlight不支持
jv9 2010-01-15
  • 打赏
  • 举报
回复
//_client.EnableBroadcast = true;
你注销了这句,还有错误提示?
zhanghe100 2010-01-15
  • 打赏
  • 举报
回复
//_client.EnableBroadcast = true;

这句注销了运行是没问题
可是调试的时后
_client就会提示
EnableBroadcast = “_client.EnableBroadcast”引发了“System.Net.Sockets.SocketException”类型的异常
展开这个错误是这样
base {System.ComponentModel.Win32Exception} = {"在 getsockopt 或 setsockopt 调用中指定的一个未知的、无效的或不受支持的选项或层次。"}
这个错误,
zhanghe100 2010-01-14
  • 打赏
  • 举报
回复
这里怎 么没人呢

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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