<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fabse-on-Blog &#187; Netzwerk</title>
	<atom:link href="http://blog.fabse.net/category/netzwerk/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fabse.net</link>
	<description>Was bewegt mich; was nicht!</description>
	<lastBuildDate>Fri, 20 Jan 2012 22:06:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Remote Verbindungen zum SQL Server</title>
		<link>http://blog.fabse.net/2011/02/21/remote-verbindungen-zum-sql-server/</link>
		<comments>http://blog.fabse.net/2011/02/21/remote-verbindungen-zum-sql-server/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 09:09:59 +0000</pubDate>
		<dc:creator>Fabse</dc:creator>
				<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://blog.fabse.net/2011/02/21/remote-verbindungen-zum-sql-server/</guid>
		<description><![CDATA[Wenn die Verbindung zum SQL Server nicht klappt, ist vermutlich einfach nur TCP/IP nicht aktiviert für den SQL Server als erlaubtes Protokoll. Einfach den Sql Server Configuration Manager im Startmenü suchen und TCP/IP erlauben. Noch schnell den SQL Server durchstarten &#8230; <a href="http://blog.fabse.net/2011/02/21/remote-verbindungen-zum-sql-server/">Continue reading <span class="meta-nav">&#8594;</span></a><p><br /><br />---<br />
<a href="https://www.amazon.de/?&tag=fabsenetfabse-21">Unterst&uuml;tze mich und meinen Blog und kauf dir was Nettes (&uuml;ber diesen Link)</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Wenn die Verbindung zum SQL Server nicht klappt, ist vermutlich einfach nur TCP/IP nicht aktiviert für den SQL Server als erlaubtes Protokoll. Einfach den Sql Server Configuration Manager im Startmenü suchen und TCP/IP erlauben. Noch schnell den SQL Server durchstarten und alles ist gut!</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://blog.fabse.net/wp-content/uploads/image44.png" border="0" alt="image" width="499" height="267" /></p>
<p><br /><br />---<br />
<a href="https://www.amazon.de/?&tag=fabsenetfabse-21">Unterst&uuml;tze mich und meinen Blog und kauf dir was Nettes (&uuml;ber diesen Link)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabse.net/2011/02/21/remote-verbindungen-zum-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UDP Broadcasts mit C# versenden (extended)</title>
		<link>http://blog.fabse.net/2008/10/29/udp-broadcasts-mit-csharp-versenden-extended/</link>
		<comments>http://blog.fabse.net/2008/10/29/udp-broadcasts-mit-csharp-versenden-extended/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 20:00:50 +0000</pubDate>
		<dc:creator>Fabse</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Netzwerk]]></category>

		<guid isPermaLink="false">http://blog.fabse.net/2008/10/29/udp-broadcasts-mit-c-versenden-extended/</guid>
		<description><![CDATA[Den Standardweg (Da ist übrigens ein Fehler drin: SocketOptionName.Broadcast muss auf 1 statt auf 0 gesetzt werden), wie man Broadcasts versendet, hatte auf meinem Rechner zur Folge, dass nur ein einziger Netzwerkadapter die Broadcasts versendete. Dies war nicht das, was &#8230; <a href="http://blog.fabse.net/2008/10/29/udp-broadcasts-mit-csharp-versenden-extended/">Continue reading <span class="meta-nav">&#8594;</span></a><p><br /><br />---<br />
<a href="https://www.amazon.de/?&tag=fabsenetfabse-21">Unterst&uuml;tze mich und meinen Blog und kauf dir was Nettes (&uuml;ber diesen Link)</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Den <a href="http://dotnet-snippets.de/dns/c-broadcast-senden-SID567.aspx">Standardweg</a> (<em>Da ist übrigens ein Fehler drin: SocketOptionName.Broadcast muss auf 1 statt auf 0 gesetzt werden), </em>wie man Broadcasts versendet, hatte auf meinem Rechner zur Folge, dass nur ein einziger Netzwerkadapter die Broadcasts versendete. Dies war nicht das, was ich wollte, denn es war auch noch ein VMWare-Adapter.</p>
<p>Nach etwas Probieren fand ich heraus, dass statt <em>IPAddress.Broadcast</em> besser <em>IPAddress.Parse(&#8230;)</em> mit der richtigen Broadcast-IP für das jeweilige Netz genommen werden sollte. Ich suchte mir also das nötige Zeug von <a href="http://dotnet-snippets.de/dns/c-netzwerkinformationen-abfragen-SID197.aspx">zwei</a> <a href="http://www.codeproject.com/KB/dotnet/BroadCast.aspx">Artikeln</a> zusammen: Ich frage nun alle Netzwerkkarten ab, die IP können, kalkuliere deren Broadcast-IP und versende dann das Broadcast-Paket für jedes Netz einzeln in einer Schleife. Nun bekommen alle Netze meinen Broadcast, wie gewünscht!</p>
<p>Wer den Quelltext sehen will, sollte den Artikel weiterlesen!</p>
<p><span id="more-279"></span>
</p>
<div class="csharpcode">
<pre class="csharpcode"><span class="kwrd">private</span> <span class="kwrd">static</span> <span class="kwrd">void</span> SendBroadcastPacket(<span class="kwrd">int</span> destinationPort, <span class="kwrd">byte</span>[] content)
{
    var NetworkInfo = <span class="kwrd">new</span> ManagementObjectSearcher(<span class="str">"SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'"</span>);
    ManagementObjectCollection MOC = NetworkInfo.Get();
    <span class="kwrd">foreach</span> (ManagementObject mo <span class="kwrd">in</span> MOC)
    {
        var adapterAddresses = (<span class="kwrd">string</span>[])mo[<span class="str">"IPAddress"</span>];
        var adapterSubnetMasks = (<span class="kwrd">string</span>[])mo[<span class="str">"IPSubnet"</span>];

        <span class="kwrd">if</span> (adapterAddresses.Count() &gt; 0 &amp;&amp; adapterSubnetMasks.Count() &gt; 0)
        {
            <span class="kwrd">try</span>
            {
                IPAddress broadcastIpForAdapter = GetBroadcastAddress(IPAddress.Parse(adapterAddresses[0]),
                                                                      IPAddress.Parse(adapterSubnetMasks[0]));
                SendBroadcastPacketToBroadcastIp(broadcastIpForAdapter, destinationPort, content);
            }
            <span class="kwrd">catch</span> (Exception ex)
            {
                Debug.WriteLine(ex.ToString());
            }
        }
    }
}

<span class="kwrd">private</span> <span class="kwrd">static</span> IPAddress GetBroadcastAddress(IPAddress ipAddress, IPAddress subnetMask)
{
    <span class="kwrd">byte</span>[] ipAdressBytes = ipAddress.GetAddressBytes();
    <span class="kwrd">byte</span>[] subnetMaskBytes = subnetMask.GetAddressBytes();
    <span class="kwrd">if</span> (ipAdressBytes.Length != subnetMaskBytes.Length)
        <span class="kwrd">throw</span> <span class="kwrd">new</span> ArgumentException(<span class="str">"Both IP address and subnet mask should be of the same length"</span>);
    var result = <span class="kwrd">new</span> <span class="kwrd">byte</span>[ipAdressBytes.Length];
    <span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; result.Length; i++)
        result[i] = (<span class="kwrd">byte</span>)(ipAdressBytes[i] | (subnetMaskBytes[i] ^ 255));
    <span class="kwrd">return</span> <span class="kwrd">new</span> IPAddress(result);
}

<span class="kwrd">private</span> <span class="kwrd">static</span> <span class="kwrd">void</span> SendBroadcastPacketToBroadcastIp(IPAddress broadcastIp, <span class="kwrd">int</span> destinationPort, <span class="kwrd">byte</span>[] content)
{
    Socket sock = <span class="kwrd">null</span>;
    <span class="kwrd">try</span>
    {
        var destinationEndpoint = <span class="kwrd">new</span> IPEndPoint(broadcastIp, destinationPort);
        sock = <span class="kwrd">new</span> Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
        sock.SendTo(content, destinationEndpoint);
    }
    <span class="kwrd">finally</span>
    {
        <span class="kwrd">if</span> (sock != <span class="kwrd">null</span>)
        {
            sock.Close();
        }
    }
}</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</div>
<p><br /><br />---<br />
<a href="https://www.amazon.de/?&tag=fabsenetfabse-21">Unterst&uuml;tze mich und meinen Blog und kauf dir was Nettes (&uuml;ber diesen Link)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabse.net/2008/10/29/udp-broadcasts-mit-csharp-versenden-extended/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

