udp socket 如何使用Socket.SetSocketOption 方法

mosada 2010-11-11 10:50:22
如何讓UDP 接收一對多資料?
s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

s.SetSocketOption(SocketOptionLevel.Udp, SocketOptionName.ReceiveBuffer,1000);

其中Socket.SetSocketOption (SocketOptionLevel, SocketOptionName, Byte[])
第二個參數值要使用什麼參數才可以接收一對多資訊
將指定的 Socket 選項設定為指定值,表示為位元組陣列。
受 .NET Compact Framework 支援。
那是啥丫?


如何分辨這些訊息的來源

可以用Thread控制一次可以接收20台client資料?

或者有沒有範例相關C#類別可以做到機制
...全文
1012 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mosada 2010-11-11
  • 打赏
  • 举报
回复
單寫這行程式碼 出現10022:提供不正確引數
我發現他也有跟我相同問題
http://social.msdn.microsoft.com/forums/zh-tw/232/thread/85F76962-FF69-4B85-9558-886CB08242AC
但是他是使用一對多傳送方式
不知道我的例子適用BILL的方法
云瑀 2010-11-11
  • 打赏
  • 举报
回复
SetSocketOption(SocketOptionLevel.Udp,SocketOptionName.ReuseAddress, true);
这个?
mosada 2010-11-11
  • 打赏
  • 举报
回复
UP. .....................................................
mosada 2010-11-11
  • 打赏
  • 举报
回复
補充第一個問題
Socket 選項,決定目前 Socket 的行為。在具有 Boolean 資料類型的選項上,指定一個非零值可以啟用選項,零值可以停用選項。而在具有整數資料類型的選項上,則指定適當的值。Socket 選項會依據通訊協定支援的層級來予以分組。

以下所列是可以使用這個多載加以設定的各種 Socket 選項。這些選項是由適當的 SocketOptionLevel 所分組。如果您打算設定任何這些選項,請務必要對 optionLevel 參數使用適當的 SocketOptionLevel。選擇要設定的選項必須在 optionName 參數中加以指定。如果您想要取得所列出任何選項的現行值,請使用 GetSocketOption 方法。

可以使用這個多載加以設定的 SocketOptionLevel.Socket 選項。

*

Broadcast
*

DontLinger
*

Debug
*

Error
*

KeepAlive
*

OutOfBandInline
*

ReceiveBuffer
*

ReceiveTimeout
*

ReuseAddress
*

SendBuffer
*

SendTimeout
*

Type

可以使用這個多載加以設定的 SocketOptionLevel.IP 選項。

*

HeaderIncluded
*

IPOptions
*

IpTimeToLive
*

MulticastInterface
*

MulticastLoopback
*

MulticastTimeToLive
*

TypeOfService
*

UseLoopback

可以使用這個多載加以設定的 SocketOptionLevel.Tcp 選項。

*

BsdUrgent
*

Expedited
*

NoDelay

可以使用這個多載加以設定的 SocketOptionLevel.Udp 選項。

*

ChecksumCoverage
*

NoChecksum

可以使用這個多載加以設定的 SocketOptionLevel.IPv6 選項。

*

HopLimit

如需這些選項的詳細資訊,請參閱 SocketOptionName 列舉型別。
mosada 2010-11-11
  • 打赏
  • 举报
回复
第一個問題解決了 SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, 1000);
原因:SocketOptionName.ReceiveBuffer 是Socket Level而不是Udp Level的參數

第二個問題 接收機制:
不知道各位高手可以提供方法讓小妹
我初步是想到Thread去控制接收不過這樣又回到一個一個接收模式

111,129

社区成员

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

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

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