2009-12-10 5 views
0

을 할 수있는 소켓을 사용하여 예외를 수행하지만, 할 수 없습니다 윈도우 7에서, 나는 다음과 같은 오류 얻을 :내가 그냥 잘 실행 XP에서 만든 C#을 응용 프로그램을 실행하면 UDP 멀티 캐스트

"동작 A의를 소켓 시스템에 충분한 버퍼 공간이 부족하기 때문에 수행 할 수 없습니다 또는 큐가 가득했기 때문에 "

나는 다음을 수행 오전 :

socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 

socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); 
IPAddress localIPAddr = IPAddress.Any; 
EndPoint localEP = new IPEndPoint(localIPAddr, MulticastPort); 
socket.Bind(localEP); 
MulticastOption mcastOption = new MulticastOption(MulticastAddress, localIPAddr); 

socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, mcastOption); 

byte[] bytes = new Byte[40960]; 

오류가 두 번째 마지막 줄 socket.SetSocketOption (에서 발생 .. .)

UDP 멀티 캐스팅을 수행하고 있음을 알 수 있습니다. Windows 7에서 허용해야 할 일이 있습니까?

+0

C#에서이 작업을 수행하는 더 좋은 방법을 발견했으며 내 사이트에 자습서를 게시했습니다. http://jarloo.com/code/networking/c-udp-multicasting-tutorial/ – Kelly

답변

0

IIRC, 멀티 캐스트 그룹에 참여하려면 커널 수준 테이블을 수정하기 때문에 추가 권한이 필요합니다. 나는 그것이 어떤 특권인지를 기억할 수 없다.