急!!!本地连接连接起了,但就是收到和发送的数据包都为0。连接TCP/IP设置失败!
可能你的网络设备有问题了。 我个人的想法是,方法一:你检查一下,你的"modem"运行是否正常,线是否插错、松了,或者是线有问题,把线重插一次,或换线,换“modem”,然后把“modem”重启,试一下。方法二:如果不行,你把网卡驱动禁止,再启动。本地连接的IP地址,再好改成自动获取。再试能不能行。 方法三:打提供网络服务部门的专门电话,比如是电信网络的,就打10000。进行咨询。让网络服务部门对网络线路进行检查。
ping 百度 不通吗? 80端口堵了把
DNS 问题。。。肯定是网络问题!

tcp客户端与服务端建立连接后,服务端能否连续(一直持续直到连接断开)发数据给客户端?
连接建立后二者就是对等的,谁给谁发数据都是可以的,所以不存在什么问题,python没用过,查了一下它的tcp通讯代码,还是蛮简单的。

外网通过WINSOCK TCP连接DMZ,可以建立连接,但是不能传送数据
不用DMZ主机,建议在路由器上做个端口映射试下。在路由器把你的聊天程序的端口映射到外网上去。

tcp socket连接后接收不到返回的数据
你搞清楚邮件收发协议 发:smtp收:pop3 一般的收件协议,它是直接把服务器上的信移动到客户端收:imap 这个是VIP邮箱协议,它是把服务器上的信复制到客户端,有备分的其次,使用POP3协议来从服务器读取数据,首先以只读方式打开收件箱,从服务器获取邮件列表,如果使用者选择列表中的邮件进行存放至本地操作,那么先获取该邮件的发送邮件地址,获取主题,获取信息(正文),接收附件,一一保存之后进行显示。这样才可以正确从服务器上下载邮件~~代码我就不提供了,网上应该到处都是,实在不懂就查查资料一句老话,知己知彼方能百战不殆!你先去了解下基于POP3,SMTP这类的邮件服务器运行机制吧!~http://download.csdn.net/source/342433 VC写的邮件收发代码,认真读读
你是说send()函数所能接受的缓冲区最大是266K吗? 你反复增大buf缓冲的大小,直至1000000,你确定能成功地申请到这么大的缓冲区吗?我想是因为你在分配很大的内存空间做缓冲区时发生了失败,然而你又没考虑到这种失败的情况,以至于send()发送时使用了无权使用的内存,导致内存出错。另外,TCP是可靠数据传输的协议,当你在一端使用send()发送出去数据时,必须等到接收端有反应才能返回(或者是发送超时失败),也就是说除非你使用2.2版本(有些人也叫4.0版本)的Socket并设置了超时,send()在一定程度上是阻塞的。而你所说的“协议还未传送数据send函数就已经往发送缓冲区copy了266k,直道超过266k就出错了”我就不太理解了。希望你把你的意思表达清楚,以便大家能够帮助你。//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 你在申请很大的内存空间之后最好能确定下是否成功申请到了.在此基础上请你再试试2.2版本的Socket.TCP下的send绝对是阻塞的,TCP是可靠数据传输协议,这一点不会还有疑问吧.
gggg

图解TCP建立连接全过程
TCP是因特网中的传输层协议,使用三次握手协议建立连接,下面是TCP建立连接的全过程。 上图画出了TCP建立连接的过程。假定主机A是TCP客户端,B是服务端。最初两端的TCP进程都处于CLOSED状态。图中在主机下面的是TCP进程所处的状态。A是主动打开连接,B是被动打开连接。首先A向B发出连接请求报文段,这时首部中的同步位SYN=1,同时选择一个初始序号seq=x。TCP规定,SYN报文段不能携带数据,但要消耗掉一个序号。这时,A进入SYN-SENT状态。B收到请求后,向A发送确认。在确认报文段中把SYN和ACK位都置为1,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y。请注意,这个报文段也不能携带数据,但同样要消耗掉一个序号。这时B进入SYN-RCVD状态。A收到B的确认后,还要向B给出确认。确认报文段的ACK置为1,确认号ack=y+1,而自己的序号seq=x+1。这时,TCP连接已经建立,A进入ESTABLISHED状态,当B收到A的确认后,也会进入ESTABLISHED状态。以上给出的连接建立过程就是常说的TCP三次握手。为什么A还要发送一次确认呢?这主要是为了防止已失效的连接请求报文段突然又传送到了B,因而产生错误。所谓已失效的连接请求报文段是这样产生的。A发送连接请求,但因连接请求报文丢失而未收到确认,于是A重发一次连接请求,成功后建立了连接。数据传输完毕后就释放了连接。现在假定A发出的第一个请求报文段并未丢失,而是在某个网络节点长时间滞留了,以致延误到连接释放以后的某个时间才到达B。本来这是一个早已失效的报文段。但B收到此失效的连接请求报文段后,就误以为A又发了一次新的连接请求,于是向A发出确认报文段,同意建立连接。假如不采用三次握手,那么只要B发出确认,新的连接就建立了。由于A并未发出建立连接的请求,因此不会理睬B的确认,也不会向B发送数据。但B却以为新的运输连接已经建立了,并一直等待A发来数据,因此白白浪费了许多资源。 采用TCP三次握手的方法可以防止上述现象发生。例如在刚才的情况下,由于A不会向B的确认发出确认,连接就不会建立。下面留个思考题给大家:如果在TCP第三次握手中的报文段丢失了会发生什么情况?

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/311896.html。