コード例 #1
0
        public SOCKET Bind( IEndpointConfiguration configuration )
        {
            SOCKET socket = INVALID_SOCKET;
            "Binding to endpoint {0}:{1}"
                .ToDebug<ISocketServer>( configuration.BindTo ?? "0.0.0.0", configuration.Port );

            try
            {
                WSAPROTOCOL_INFO info = new WSAPROTOCOL_INFO();

                Native.WSASocket(
                        (int) AddressFamily.InterNetworkv4,
                        (int) SocketType.Stream,
                        (int) ProtocolType.Tcp,
                        out info,
                        0,
                        (int) SocketFlags.Overlapped
                    );

                var address = Native.inet_addr( configuration.AnyInterface
                                  ? "0.0.0.0"
                                  : configuration.BindTo );
                var port = Native.htons( (ushort) configuration.Port );
                sockaddr_in socket_address = new sockaddr_in();
                socket_address.sin_addr.S_addr = address;
                socket_address.sin_port = port;
                socket_address.sin_family = (short) AddressFamily.InterNetworkv4;

                Native.bind( socket, &socket_address, sizeof ( sockaddr_in ) );
                Native.listen( socket, 10000 );
                return socket;
            }
            catch (Exception e)
            {
                "Binding to endpoint {0}:{1} FAILED."
                    .ToDebug<ISocketServer>( configuration.BindTo ?? "0.0.0.0", configuration.Port );
            }
            return socket;
        }
コード例 #2
0
ファイル: Native.cs プロジェクト: code-attic/rocketsockets
 public static extern sbyte* inet_ntoa(sockaddr_in.in_addr _in);
コード例 #3
0
ファイル: Native.cs プロジェクト: code-attic/rocketsockets
 public static extern int connect(SOCKET s, sockaddr_in* addr, int addrsize);
コード例 #4
0
ファイル: Native.cs プロジェクト: code-attic/rocketsockets
 public static extern int getpeername(SOCKET s, sockaddr_in* addr, int* addrsize);
コード例 #5
0
ファイル: Native.cs プロジェクト: code-attic/rocketsockets
 public static extern int bind(SOCKET s, sockaddr_in* addr, int addrsize);