标签: packet

统计 HTTP 数据包

HTTP数据包的数量与网页中的对象数量之间有什么关系?

http packet

1
推荐指数
1
解决办法
1894
查看次数

为什么这个 Java UDP 数据包长度太长?

所以我有一个 java 服务器和客户端,数据被发送到服务器很好,服务器正在交互它,但我发现客户端需要很长时间才能响应服务器发送的内容,经过一段时间环顾四周,我发现我的服务器发送给客户端的数据比应该发送的数据长得多。

发送到客户端的数据包包含我发送的所有数据,但是它后面也有很多空白,我想解决这个问题,有人有什么想法吗?

我获取数据的代码是服务器上每个客户端的简单 for 循环,这将客户端数据添加到一个字符串中,并将该字符串添加到一个数据包中:

类 PlayerList

public static String getString()
{
    String message = "";

    for(int x = 0; x < list.size(); x++)
    {
        Player player = list.get(x);

        if(message.equals(""))
        {
            message += player.name+";"+player.address+";"+player.pos[0]+";"+player.pos[1]+";"+player.fakeRotation+";"+player.rotation+";"+player.rotationSpeed+";"+player.speed+";"+player.sheildEnabled+";"+player.sheildStrength+";"+player.health;
        }
        else
        {
            message += ","+player.name+";"+player.address+";"+player.pos[0]+";"+player.pos[1]+";"+player.fakeRotation+";"+player.rotation+";"+player.rotationSpeed+";"+player.speed+";"+player.sheildEnabled+";"+player.sheildStrength+";"+player.health;
        }
    }

    System.out.println(message);

    return message;
}
Run Code Online (Sandbox Code Playgroud)

班级发送

while(Server.serverRunning)
    {
        for(int p = 0; p < PlayerList.list.size(); p++)
        {
            Player player = PlayerList.list.get(p);

            try
            {
                byte[] buf = PlayerList.getString().getBytes();

                //send the message to the client to the given address …
Run Code Online (Sandbox Code Playgroud)

java client udp packet

1
推荐指数
1
解决办法
2942
查看次数

Delphi Indy与RECON的TCP连接

我试图找出如何使用远程控制台建立连接和身份验证.

这个Wiki Wiki 1和这个Wiki 2告诉我,我需要构建一个数据包并将其发送到RECON,但我不知道如何做到这一点.

我是一个网络新手但是因为我在那里搜索然后我建立了这个:

procedure TForm1.Button1Click(Sender: TObject);
begin
  IdTCPClient1.Host:= '127.0.0.1';
  IdTCPClient1.Port:= 20001;
  IdTCPClient1.Connect;
  IdTcpClient1.IOHandler.Writeln('1234');
  ShowMessage(IdTcpClient1.IOHandler.ReadLn);
end; 
Run Code Online (Sandbox Code Playgroud)

我被困在那里,其中1234是RECON密码和它返回的消息:Connection正常关闭......

最后,我如何成功登录?并且至少发送一个命令"list"下一步将实时接收控制台日志?

谢谢

delphi tcp indy packet minecraft

1
推荐指数
1
解决办法
621
查看次数

如何使用 Python 的套接字库更改 TCP 标头和选项

我想获得一些有关如何修改 TCP 标头以及更改 TCP 标头上的选项的帮助。我对选项的 MSS 部分特别感兴趣。

我尝试使用带有不同选项的setsockopt(),但没有成功。

以下是一些尝试更改 MSS 的代码:

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #! Settings mss
    s.setsockopt(socket.IPPROTO_TCP, socket.IP_OPTIONS , b"MSS:400")
Run Code Online (Sandbox Code Playgroud)

我预计 MSS 会更改为 400。代码会运行,但不会更改 MSS(使用 Wireshark 检查)。

python sockets tcp mtu packet

1
推荐指数
1
解决办法
4066
查看次数

带有模板的C++ Packet Builder

PacketBuilder是一个允许写入char*数组的类.附加功能:

template <class T>
void PacketBuilder::Append(const T value)
{
 memcpy((&m_Buffer) + m_Index, (const void*) &value, sizeof(T));
 m_Index += sizeof(T);
}
Run Code Online (Sandbox Code Playgroud)

编译没有错误.如果我调用Append并使用T作为无符号短(WORD).它很棒.如果我使用T作为unsigned char.我收到链接器错误.

m_Builder.Append<unsigned char>(0x01); // Error: LNK1120
m_Builder.Append<unsigned short>(0x0001); // Works
Run Code Online (Sandbox Code Playgroud)

来自VS2010的错误(我得到了德国vs2010):

错误LNK2019:Verweis aufnichtaufgelöstesexternes符号""public:void __thiscall PacketBuilder :: Append(unsigned char)"(?? $ Append @ E @ PacketBuilder @@ QAEXE @ Z)"在Funktion中""public:void __thiscall客户端: :DoHandshake(无效)"(?DoHandshake @ Client @@ QAEXXZ)".1> C:\ XXX\C++\SilkroadEmu\Debug\LoginServer.exe:致命错误LNK1120:1nichtaufgelösteexterneVerweise.

翻译成英文:

错误LNK2019:未解析的外部符号""public:void __thiscall PacketBuilder :: Append(unsigned char)"(?? $ Append @ E @ PacketBuilder @@ QAEXE @ Z)"in Function""public:void __thiscall Client :: DoHandshake(无效)"(?DoHandshake @ …

c++ linker-errors packet memcpy

0
推荐指数
1
解决办法
571
查看次数

检测数据包嗅探器

我正在编写一个与网络相关的应用程序,如果检测到数据包嗅探器,我想通过关闭它来保护它免受逆向工程的影响.如何检测数据包嗅探器是否正在运行?我可以检查正在运行的应用程序,并根据预定义的字符串(wireshark,httpanalyzer等)检查它们的名称,但这似乎不是最好的方法.有没有办法确定应用程序是否在嗅探数据包?谢谢

c# detect sniffer packet

0
推荐指数
1
解决办法
1193
查看次数

如何使用重写的 OpenVPN tun/tap dirver 在 Windows 中修改/重定向数据包

我想使用 Qt for Windows 编写的重定向服务器和链代理客户端来制作透明的链代理。我尝试过 ndis+tdi 但对我来说太复杂了。我已经开始破解openVPN的代码了。因此,任务是启动虚拟 Tap 设备,即使不需要 OpenVPN 连接,并将数据包重定向到我的重定向服务器将绑定的某个地址:端口。也许实现新的插件功能会更好??...

windows redirect openvpn packet

0
推荐指数
1
解决办法
3560
查看次数

如何使用UDP协议顺序获取数据包?

我在c#中申请.我正在连续获取24097端口上的数据,我将数据记录为

UdpClient client = null;
 IPEndPoint ipep = null;
 client = new UdpClient(24097); 
 client.Client.ReceiveBufferSize = 25000;
 ipep = new IPEndPoint(IPAddress.Any,24097);
while(flag)
{
  byte[] data= = client.Receive(ref ipep);
}
Run Code Online (Sandbox Code Playgroud)

但我的问题是我收到的数据包不按顺序排列.我希望以顺序方式接收它们.请帮帮我.谢谢.

c# sockets udp packet sequential

0
推荐指数
1
解决办法
1948
查看次数

C#如何处理TCP数据包/段

关于TCP的几个问题.

我知道如果数据包遇到MTU等较低的网络设备,它将被"拆分"或碎片化.但我遇到的问题是了解如何在应用程序中"重建"我的有效负载.(我现在已经尝试了2-3个小时,但似乎无法做到正确)

首先要做的事情.发送数据包时,以下两个选项的优缺点是什么?

NetworkStream ns = client.GetStream();
ns.Write(BitConverter.GetBytes(100));
ns.Write(BitConverter.GetBytes("Test"));
Run Code Online (Sandbox Code Playgroud)

要么

NetworkStream ns = client.GetStream();
byte[] payload = BitConverter.GetBytes(100).Concat(BitConverter.GetBytes("Test"));
ns.Write(payload); //, 0, payload.Length);
Run Code Online (Sandbox Code Playgroud)

我如何在recv重建有效载荷.部分如果已被拆分?我会喜欢用这种勺子喂食,因为我似乎错过了一些非常重要的,但不是那么明显,在我目前的应用中.

c# networking tcp packet

0
推荐指数
1
解决办法
1440
查看次数

使 UDP 广播与 wifi 路由器配合使用

我想在一个非常简单的网络上测试 UDP 广播:一个根本没有连接到互联网的旧 wifi 路由器(WRT54GS)、一个 Android 平板电脑和我的 MacBook:

[Tablet] <\/\/\/\/\/> [Wifi Router] <\/\/\/\/\/> [Macbook]
Run Code Online (Sandbox Code Playgroud)

其中波浪线表示无线连接。

Macbook 的 IP 地址为 192.168.1.101,平板电脑的 IP 地址为 192.168.1.102。路由器是192.168.1.1。

为了避免太多低级细节,我想使用 netcat 进行测试。我决定使用端口 11011,因为它很容易输入。

作为第一步,我想我应该尝试让 MacBook 上的这项功能恢复正常。在两个终端窗口中,我运行了这些程序

窗口 1:% nc -ul 11011

我首先启动了它,然后:

窗口2:% echo 'foo' | nc -v -u 255.255.255.255 11011

窗口 1 中没有任何显示。窗口 2 中的结果是这样的:

found 0 associations
found 1 connections:
     1: flags=82<CONNECTED,PREFERRED>
    outif (null)
    src 192.168.1.2 port 61985
    dst 255.255.255.255 port 11011
    rank info not available
Run Code Online (Sandbox Code Playgroud)

我相当确定我在这里遗漏了一些明显的东西。熟悉 nc 的人能发现我明显的错误吗?

udp broadcast packet netcat

0
推荐指数
1
解决办法
5209
查看次数

以太网数据不是总是包含 IP 数据包吗?

我对以下用 Python 编写的代码有疑问:

def parse_ethernet(timestamp, packet)
    ethernet = dpkt.ethernet.Ethernet(packet)
    if isinstance(ethernet.data,dpkt.ip.IP):
        parse_ip(ethernet.data)
Run Code Online (Sandbox Code Playgroud)

代码的想法是使用python中的dpkt库解析以太网数据包。我的问题是关于以下行:

if isinstance(ethernet.data,dpkt.ip.IP):
Run Code Online (Sandbox Code Playgroud)

为什么需要证明 ethernet.data 是否是 IP 数据包的实例?以太网数据不是总是包含 IP 数据包吗?

python ip networking ethernet packet

0
推荐指数
1
解决办法
69
查看次数