草庐IT

c# - 使用TCP c#将数据包从服务器发送到特定客户端

我目前正在编写客户端-服务器应用程序。客户端发送UDP广播消息试图定位服务器,服务器发送UDP广播消息确定其位置。当客户端收到一条标识服务器位置的消息时,它会尝试使用socket.Connect(remoteEndPoint)连接到服务器。服务器在监听套接字上监听这些TCP请求,并使用listensocket.accept()接受请求。客户端详细信息存储在数组中(包括他们的IP和端口号)客户端向服务器发送一条消息,其中包含有关用户输入的用户名和密码的信息。服务器检查数据库中的用户名和密码,并根据结果将TCP消息(这是它中断的地方)发送回使用监听套接字发送检查U&P请求的客户端。我正在尝

tcp - 如何查看 Apache Kafka 生成的完整 TCP 数据包?

我正在使用ApacheKafka。我使用KafkaProducer生成数据,使用KafkaConsumer消费数据。我的配置数据是:Propertiesprops=newProperties();props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");props.put(ProducerConfig.CLIENT_ID_CONFIG,"DemoProducer");props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,"org.apache.kafka.c

C# - 似乎同时接收两个 TCP 数据包?

我正在制作一个聊天室应用程序,我发送TCP数据包在服务器和客户端之间进行通信。我有以下代码:stringreturnMessage="[EVT]USERSUCCESS";bytes=Encoding.ASCII.GetBytes(returnMessage);info.WriteToStream(bytes);foreach(ConnectionInfoconinconnections){info.WriteToStream(bytes);bytes=Encoding.ASCII.GetBytes("[EVT]USERJOIN;"+username);con.WriteToStream

python - 如何通过 scapy 发送 FIN 数据包关闭连接?

我需要发送一个FIN数据包来关闭具有IP和端口信息(以及来自先前数据包的其他信息)的连接。我已经看到可以通过3次握手建立新连接(参见3wayhandshakeinScapy),但没有关于连接关闭的内容。 最佳答案 如RFC所述您需要发送一个FIN段,然后等待端点的确认(ACK)+FIN段,然后为其发送最后一个ACK​​段。这是一个使用Scapy的简单示例:fromscapy.allimport*conf.L3socket=L3RawSocketsport=10000dport=45000pkt=IP(src="1.2.3.4",ds

java - Socket TCP 通信数据包拆分

我开发了一个点对点项目,我尝试在两台机器上进行通信(A我的笔记本电脑通过WiFi连接,B我的NAS通过以太网连接)同一个网络。通信运行良好,但是当我发送大小为1696字节的数据包时出现问题。所以在我的发件人A中,我将1696字节的block写入B,当我查看Wireshark时,我看到发送了两个数据包,一个大小为1448字节,另一个大小为248字节(1448+248=1696)。所以我认为数据包被一种协议(protocol)或网络和物理层之间的某种东西切断,因为1448可以对应于一个MTU。所以在我的接收器B中发生了一些奇怪的事情,如果我发送两次1696block,第一次我将读取一个16

linux - 如何拦截tcp数据包并在飞行中修改?

如何在Linux(Ubuntu)中拦截tcp数据包并在没有代理的情况下动态修改?例如,使用wireshark抓包修改数据包。需要捕获、搜索和替换数据包,但示例:搜索正则表达式"/()/i",替换为"$1\n"仅适用于使用ftp、smtp、http等的本地数据包。如何制作这个? 最佳答案 鉴于您的示例,您不想只更改数据包中的单个字节,而是可能跨越多个数据包的字符串。此外,您的替换字符串的长度可能与原始字符串不同。如果您在数据包级别执行此操作(因为您不想使用代理),您需要:可能会延迟数据包的转发,以防它们可能需要根据后续数据包的内容进行

c# - 如何在C#中发送数据包?

我在Internet上阅读了一些内容,我想知道如何在C#中通过TCP发送数据包。这是我到目前为止所做的:TcpClientclient=newTcpClient("myipaddresssecret",7172);Byte[]data="140049081141799b622d422fcd918d9fb1c55bc3f422";NetworkStreamstream=client.GetStream();stream.Write(data,0,data.Length);client.Close();(从Wireshark获取数据)所以问题是:如何在C#中通过互联网发送TCP数据包,或者

C# Tcp 丢失数据包?

我写了一个C#聊天软件,它使用一个新的(至少对我而言)系统,我称之为请求系统。我不知道那是不是以前创造的,但现在我认为它是我的创造:P总之,这个系统是这样工作的:soc收到信号检查信号如果它刚刚收到的数据是数字2,客户端软件就知道服务器要发送一条聊天消息。如果数字是3,则客户端知道服务器即将发送成员列表,依此类推。问题是这样的:当我在VS2012中逐步执行时,它工作正常,聊天工作正常。当我在Debug模式下使用它或只是在我的桌面上运行它时,似乎缺少数据,这不应该是因为代码工作正常...客户端收发消息代码示例:publicvoidRecieveSystem(){while(true){b

networking - 究竟什么时候创建网络数据包?

在从客户端到主机(或反之亦然)的消息传输中,消息实际上是在哪个点被分割成数据包?根据我目前的理解,应用程序将整个文件放入套接字并将其完全交给TCP。TCP首先缓冲文件/消息,然后在合适的时候(什么时候合适?)切割缓冲区数据block(创建数据包)并添加TCPheader以将block转换为段。如果应用层根本没有数据包,为什么还要讨论应用层的数据包呢?只是整个文件...这不正确。谁能证实我的理解? 最佳答案 基于TCP的应用程序有一个消息要发送。消息是什么取决于应用程序——它可能只是一个小请求,也可能是整个文件。它将消息传递到传输层(

tcp - 如何通过 tcp (udptunnel) 转发 udp 数据包

如何使用“udptunnel”以便我能够通过tcp发送和接收udp数据包可能有一个例子 最佳答案 您在不同网络中的两台PC上启动udptunnel并按此处所述连接它们:http://www.cs.columbia.edu/~lennox/udptunnel/举个例子:http://wiki.leipzig.freifunk.net/Udptunnel 关于tcp-如何通过tcp(udptunnel)转发udp数据包,我们在StackOverflow上找到一个类似的问题: