小编Mac*_*ack的帖子

使用C#的原始套接字

我想在C#中编写一个端口扫描程序,我不能使用SocketType.Raw,因为原始套接字是从桌面版本的Windows中取出的.我不能使用SharpPcap或Winpcap的其他包装,因为我使用PPPoE进行互联网连接,而Winpcap不支持PPP设备.

我需要使用一个实现原始套接字的库,而不依赖于winpcap.

有任何想法吗?基本上我需要发送SYN,接收SYN/ACK或RST但不发送ACK.

编辑:

对于那些不相信RAW套接字从Windows桌面版本消失的人,请看这里:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740548(v = vs.85).aspx

在Windows 7,Windows Vista,Windows XP Service Pack 2(SP2)和Windows XP Service Pack 3(SP3)上,通过原始套接字发送流量的能力受到以下几种限制:

  • TCP数据无法通过原始套接字发送.
  • 无法通过原始套接字发送具有无效源地址的UDP数据报.任何传出UDP数据报的IP源地址必须存在于网络接口上,否则数据报将被丢弃.此更改旨在限制恶意代码创建分布式拒绝服务攻击的能力,并限制发送欺骗数据包(具有伪造源IP地址的TCP/IP数据包)的能力.
  • 不允许bind使用IPPROTO_TCP协议的原始套接字调用该函数.
    注意bind具有原始套接字函数被允许用于其它协议(IPPROTO_IP,IPPROTO_UDP,或IPPROTO_SCTP,例如).

c# tcp raw-sockets

14
推荐指数
1
解决办法
2万
查看次数

关于WPF,Win32,MFC的棘手问题

假设您是一名具有C++和C#基础知识的IT学生.我们假设您要设计以下应用:

  1. 需要提供一些性能,如归档程序,加密算法,编解码器
  2. 利用一些系统调用
  3. 有一个gui

并且你想学习一个Api,它可以让你编写像前面描述的那样的应用程序,并且:

  1. 是主流
  2. 是未来的证据
  3. 有权让你找到一份体面的工作
  4. 很容易 - 我的意思很容易像VCL,不像winapi那么容易

那么,做出这些假设,你会选择什么Api?MFC,WPF,其他?我非常喜欢VCL和QT,但它们不是主流,我认为很少有雇主会要求你在QT或Visual C++ Builder中编写应用程序......

谢谢你的回答.

api wpf winapi mfc

10
推荐指数
2
解决办法
3416
查看次数

c ++和c#速度比较

当你处理繁重的计算时,当你需要使用原始CPU功率时,我担心C#的速度.

在计算方面,我一直认为C++比C#快得多.所以我做了一些快速测试.第一个测试计算素数<整数n,第二个测试计算一些pandigital数字.第二次测试的想法来自于:Pandigital Numbers

C#素数计算:

using System;
using System.Diagnostics;

class Program
{

    static int primes(int n)
    {

        uint i, j;
        int countprimes = 0;

        for (i = 1; i <= n; i++)
        {
            bool isprime = true;

            for (j = 2; j <= Math.Sqrt(i); j++)

                if ((i % j) == 0)
                {
                    isprime = false;
                    break;
                }

            if (isprime) countprimes++;
        }

        return countprimes;
    }



    static void Main(string[] args)
    {
        int n = int.Parse(Console.ReadLine());
        Stopwatch sw = new Stopwatch();

        sw.Start();
        int …
Run Code Online (Sandbox Code Playgroud)

c# c++ benchmarking

6
推荐指数
4
解决办法
6083
查看次数

标签 统计

c# ×2

api ×1

benchmarking ×1

c++ ×1

mfc ×1

raw-sockets ×1

tcp ×1

winapi ×1

wpf ×1