原始套接字 tcp-用原始套接字发送TCP数据包,显示发送成功但是接收不到,求教

问题描述

用原始套接字发送TCP数据包,显示发送成功但是接收不到,求教
我需要自己构建IP数据包,在IP选项部分添加一些数据,因此用原始套接字发送TCP数据包,但是发送成功了,另一台主机接收不到,用的2003系统,不知道哪位好心人能帮助下,万分感激,谢谢

解决方案

你这个问题说的比较笼统,
你是用的无连接发送吧,发送成功了,但是主机没收到,可能:
1.IP包或者TCP包创建的有问题
2.发送过程中,数据有丢失
3.服务器的程序,在接受数据的程序上存在一些问题

解决方法:
1.在客户端断点检测,查看IP和TCP包的构建
2.在每个函数下都要又判断
3.赵忠检查服务器的问题。

时间: 2024-08-23 04:25:44

原始套接字 tcp-用原始套接字发送TCP数据包,显示发送成功但是接收不到,求教的相关文章

.Net开发中TCP反向代理、Socket 连接池和数据包解析器教程

TCP反向代理 一般的Web反向代理大家很熟悉了,主要是通过在客户端和服务端之间架设一层代理服务器,转发客户端的请求至服务端或数据库,并将结果回复给客户端. 其特点主要有: 1.缓存一些数据库I/O过重.却更新不频繁的数据,或者静态数据,如文件.图片等.2.隔离客户端(公网)和服务端(windows服务.Web服务.文件服务),仅将反向代理服务器的IP.名称.host和端口等暴露给公网.3.基于第2点,其应该是轻量的.可随时重启的,这在服务端自身所在的服务器重启代价较高或不能忍受重启的条件下,极

TCP传输小数据包效率问题

当Microsoft TCP栈接收到一个数据包时,会启动一个200毫秒的计时器.当ACK确认数据包发出之后,计时器会复位,接收到下一个数据包时,会再次启动200毫秒的计时器.为了提升应用程序在内部网和Internet上的传输性能,Microsoft TCP栈使用了下面的策略来决定在接收到数据包后什么时候发送ACK确认数据包:1.如果在200毫秒的计时器超时之前,接收到下一个数据包,则立即发送ACK确认数据包.2.如果当前恰好有数据包需要发给ACK确认信息的接收端,则把ACK确认信息附带在数据包上

sock-怎么用python和原始套接字发送一tcp数据包?

问题描述 怎么用python和原始套接字发送一tcp数据包? 这段代码直接把数据packet_base作为ip的载荷了,怎么才能是packet_base作为tcp的载荷呢?谢谢 sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) sock.sendto(packet_base, 0, (IP_PACKET_IN, 12321)) sock.close() 解决方案 把你的代码修改成如下就是TCP啦:

代码-linux的xterm开启的终端里使用原始套接字发送数据包出错,求助

问题描述 linux的xterm开启的终端里使用原始套接字发送数据包出错,求助 xterm下原始套接字可以接收数据包,但是发送数据包时出错,怎么解决? 错误是[error 101]network is unreachable. 代码如下: proto = socket.getprotobyname('tcp') # only tcp sock = socket.socket( socket.AF_INET, socket.SOCK_RAW, proto ) packet_base = sock.

Linux下套接字详解(四)----简单的TCP套接字应用(迭代型)

前面我们已经将了TCP/UDP的基本知识,还说了并发服务器与迭代服务器的区别,我们大致了解大多数TCP服务器是并发的,大多数UDP服务器是迭代的 ,即我们在进行数据传送的时候,往往使用服务器与客户但之间无连接的UDP报文,但是在用户需要上传下载文件时,就会在客户端和服务器之间建立一条TCP连接,进行文件的传送 那么我们下面就来实现一个简单的TCP服务器. TCP套接字编程模型图 我们首先看一下TCP客户端与服务端的编程模型和流程. 此模型不仅适合迭代服务器,也适合并发服务器,不管服务器是并发的还

TCP 非阻塞套接字 发送文件数据会丢失

问题描述 TCP 非阻塞套接字 发送文件数据会丢失 用以下函数将套接字设置为非阻塞套接字 bool setSockNoBlock(SOCKET s) { bool flg=true; if (::ioctlsocket(s, FIONBIO, (unsigned long )&flg)==0) { cout<<"socket"< return true; } return false; } 发送文件代码: bool sendFile(SOCKET s,char

谈谈Java利用原始HttpURLConnection发送POST数据_java

URLConnection是个抽象类,它有两个直接子类分别是HttpURLConnection和JarURLConnection.另外一个重要的类是URL,通常URL可以通过传给构造器一个String类型的参数来生成一个指向特定地址的URL实例. 每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络.请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close

c# remoting 多账套-C# remoting 实现多账套

问题描述 C# remoting 实现多账套 C# remoting 实现多账套 (有服务端和客户端,客户端可以通过服务端切换不通的数据库即多账套) 解决方案 服务器加上一个判断,切换传不同的账套,服务器返回数据

Python进行TCP数据包注入(伪造)实例教程

数据包注入是对已经建立的网络连接通过构建任意协议(TCP-UDP-)然后用原始套接字发送的方式进行妨碍的过程,这种方法被广泛使用在网络渗透测试中,比如DDOS,端口扫描等. 一个数据包由IP头部信息.TCP/UDP头部信息和数据构成: <span class="setting">Packet = <span class="value">IP Header + TCP/UDP Header + Data</span></spa