winsocket send失败,返回10054 [问题点数:20分,结帖人1303411]

Bbs1
本版专家分:30
结帖率 90%
Bbs1
本版专家分:30
Bbs1
本版专家分:30
Bbs3
本版专家分:797
Bbs1
本版专家分:30
Bbs3
本版专家分:797
Bbs2
本版专家分:101
Bbs2
本版专家分:129
Bbs2
本版专家分:129
Bbs1
本版专家分:30
Bbs1
本版专家分:30
Bbs1
本版专家分:30
Bbs1
本版专家分:55
Bbs2
本版专家分:129
Windows网络编程之(一)Socket阻塞模式(TCP和UDP)
TCP通信Server#include n#include static const int PORT = 7777;nstatic const int BUFFER_LENGTH = 128 ;bool InitWSA() ;int main()n{n if(!InitWSA())n {n return -1 ;n }
非阻塞 socket 在send之后返回 WSAEWOULDBLOCK分析
首先,Winsock 异常 10035 WSAEWOULDBLOCK (WSAGetLastError) 的意识是 Output Buffer 已经满了,无法再写入数据。确切的说它其实不算是个错误,出现这种异常的绝大部分时候其实都不存在 Output Buffer 已满情况,而是处于一种“忙”的状态,而这种“忙”的状态还很大程度上是由于接收方造成的。意思就是你要发送的对象,对方收的没你发的快或者对...
Linux下send错误代码32
问题描述:今天写程序,socket后<em>send</em>出现这个问题,<em>send</em>的<em>返回</em>值为-1,而errno为32,这个错误代码为broken pipe,即管道破裂。rn rn rn问题形成原因:后来通过排查研究,发现出现该种问题出现的可能性为以下两种:rn1.socket<em>失败</em>,与服务器端的链接没有成功,从而管道破裂。rn2.服务端将客户端的socket断开,一样造成这样的问题。rn rn rn此时这样的程序收
CI框架email类发送邮件失败无报错,开启debug模式的方法
使用CI框架的emailCI_Email时发送<em>失败</em> <em>send</em>方法<em>返回</em>false想要知道原因时可以输出email类的debug来进行查看,方法如下:rn$this->email->print_debugger(array('headers'))
Python网络编程Socket应用,并解决了error:10054错误
首先我们写一个客户端:nnnnimport socketnn# 客户端 发送一个数据,再接收一个数据nclient = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #声明socket类型,同时生成链接对象nclient.connect(('localhost',6969)) #建立一个链接,连接到本地的6969端口nnwhile True:n ...
重叠ioWSARecv函数10014错误
这几天心血来潮想自己再动手写写各个网络io模型,以前只是写过简单的demo,实际工作中也没用过,基本忘的也差不多了,现在想重新写一下,没想到还是有收获的,这里记录其中一点。rnrnrn今天写到重叠io-完成例程模型,WSARecv函数一直<em>返回</em>10014错误,错误码解释是:rnBad address.rnThe system detected an invalid pointer address i
WinSocket实现进程通信的一个简单实例
Windows下通过Socket可以使进程之间产生通信。n    设计上简单地分为服务端和客户端。nnn服务端:nnn建立Socket声明自身的端口号和地址并绑定到Socket使用Listen打开监听,然后不断用Accept去查看是否有连接,如果有,捕获Socket,并通过Recv获取消息的内容通信完成后调用CloseSocket关闭这个对应Accept到的Socket,如果不再需要
挂钩send函数
挂钩windows系统中的<em>winsocket</em>中的<em>send</em>函数,比较实用,供大家学习使用
网络编程read, write, recv, send函数返回
1.1    readn>0 : 正常情况下<em>返回</em>读入的字节数,read 读取数据时有水位控制,当可读数据大于水位时,就<em>返回</em>。n=0 : 当关闭socket连接时且缓冲区中没数据可读时,<em>返回</em>0;当文件操作时,读取到文件尾EOF,也<em>返回</em>0nn其man帮助如下:nn1.2    writen>0 : 正常情况下<em>返回</em>写入的字节数,阻塞的write调用将检测写缓冲区的大小,当写缓冲大于writ
python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接。
因为对一个网站大量的使用urlopen操作,所以会被那个网站认定为攻击行为。有时就不再允许下载。导致urlopen()后,request.read()一直卡死在那里。最后会抛出errno<em>10054</em>.rn这个错误是connection reset bypeer.也就是传说的远端主机重置了此连接。原因可能是socket超时时间过长;也可能是request =urllib.request.urlopen
tcp send 函数导致进程退出
1、在linux下写socket的程序的时候,如果尝试<em>send</em>到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。这个信号的缺省处理方法是退出进程。因此我的处理方法很简单,重新定义这个信号的处理方式,使用:nnvoid signal_func() { n}nnsignal(SIGPIPE,signal_func);nn这样程序就不会退出了nn2、在linux下se...
connect & send 在三次握手过程中的有趣问题
一、问题回顾面试的时候被问到的问题,原问题是:n 1:写一下socket网络编程服务端和客户端常用的函数。 n 2:如果服务端在listen之后没有accept,那客户端的connect会<em>返回</em>吗?为什么? n 3:此时调用<em>send</em>发数据会怎么样?n在看下面答案之前,推荐阅读: n 深入探索 Linux listen() 函数 backlog 的含义 Socket accept queue
linux socket编程中的recv和send返回值介绍及其含义。
recv方法:模型: #include &amp;lt;sys/types.h&amp;gt; #include &amp;lt;sys/socket.h&amp;gt; ssize_t recv(int sockfd, void *buf, size_t len, int flags);参数:sockfd创建的文件描述符fd,buf接收数据的缓冲区,len接收数据的长度,flags表示信息,默认设置为0当应用程序调用recv接...
WinSocket Send 内存泄漏疑问
问题是这样的,我封装了socket和ODBC(大量借鉴了前辈的成果,表示感谢),单独使用都没有问题,但如果把数据集发送到客户端时,经过大约20次(与socket缓冲区大小有关)后,数据库就不能正常工作了。请教高人指点。rn(全部代码贴不下,感兴趣的请给邮箱地址,只贴出关键函数)rnSocket:rn[code=c]rnint CJXSSocket::Receive(char *recvbuff, int nBuffLen, int nFlag/*=0*/, int nTimeOut/*=0*/)rnrn int nRecvCount=0;rn if (nBuffLen=WSAENETDOWN && lErrorCode=nFrameLen)rn break;rn rn elsern return FALSE;rn rn //memcpy(pframe, pBuff, sizeof(char)*nFrameLen);rn //delete []pBuff;rn return TRUE;rnrnint CJXSSocket::Send(char *<em>send</em>buff, int nBuffLen, int nFlag/*=0*/, int nTimeOut/*=0*/)rnrn int nSend=0;rn if (nBuffLen=nFrameLen)rn break;rn rn elsern bRet = FALSE;rn rn //delete []pBuff;rn return bRet;rnrn[/code]rnODBCrn[code=c]rnrnSQLRETURN CJXSSQLDirect::ExecuteSQL(LPCTSTR srtCommand)rnrn //SetBusy();rn BOOL bRet=TRUE;rn SQLRETURN nRet=SQL_ERROR;rn if (m_hStmt!=INVALID_HANDLE_VALUE && m_hStmt!=NULL)rn TRYODBC(m_hStmt, SQL_HANDLE_STMT, nRet=SQLFreeStmt(m_hStmt,SQL_CLOSE));rn if (bRet)rn TRYODBC(m_hDBC, SQL_HANDLE_DBC, SQLAllocHandle(SQL_HANDLE_STMT, m_hDBC, &m_hStmt));rn if (bRet)rn TRYODBC(m_hStmt, SQL_HANDLE_STMT, SQLSetStmtAttr(m_hStmt, SQL_ATTR_CURSOR_TYPE, SQL_CURSOR_FORWARD_ONLY, SQL_IS_INTEGER));rn if (bRet)rn TRYODBC(m_hStmt, SQL_HANDLE_STMT, SQLSetStmtAttr(m_hStmt, SQL_ATTR_CONCURRENCY, (SQLPOINTER)SQL_CONCUR_READ_ONLY, SQL_IS_INTEGER));rn if (bRet)rn TRYODBC(m_hStmt, SQL_HANDLE_STMT, SQLSetStmtAttr(m_hStmt, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)1, SQL_IS_INTEGER));rn if (bRet)rn TRYODBC(m_hStmt, SQL_HANDLE_STMT, nRet=SQLExecDirect(m_hStmt, (SQLCHAR *)srtCommand, SQL_NTS));rn if (bRet)rn bRet=InitCols(nRet);rn return nRet;rnrnSQLRETURN CJXSSQLDirect::Skip(void)rnrn BOOL bRet=TRUE;rn SQLRETURN nRet=SQL_NO_DATA;rn if (m_hStmt==INVALID_HANDLE_VALUE ||!m_hStmt)rn bRet=FALSE;rn if (bRet)rn TRYODBC(m_hStmt,SQL_HANDLE_STMT, nRet=SQLFetch(m_hStmt));rn //InitCols(nRet);rn if (bRet)rn rn CJXSSQLColumn *pCol;rn for (int idx=0; idxm_nIndex>=0)rn rn TRYODBC(m_hStmt, SQL_HANDLE_STMT, SQLGetData(m_hStmt, pCol->m_nIndex, pCol->m_nDataType, pCol->m_pValue,pCol->m_nWidth, &pCol->m_nDataSize));rn if (bRet)rn rn if (pCol->m_nDataSize==SQL_NULL_DATA)rn memset(pCol->m_pValue, 0, sizeof(SQLCHAR)*pCol->m_nWidth);rn continue;rn rn elsern break;rn rn rn rn return nRet;rnrnvoid *CJXSSQLDirect::GetCol(int nIdx)rnrn if (nIdx>=0 && nIdxm_pValue;rn return NULL;rnrnvoid *CJXSSQLDirect::GetCol(LPCTSTR strColName)rnrn for (int idx=0; idxm_strName.Trim()==strColName)rn return GetCol(idx);rn rn return NULL;rnrn[/code]rn
非阻塞TCP SOCKET, send()会不会阻塞?
case 1.服务端: 非阻塞, 持续向客户端发送数据;客户端: 非阻塞,不接s收服务端数据;现象:客户端socket缓存满后,服务端<em>send</em>函数阻塞
windows下socket函数一直返回-1的问题
今天遇到了一个SOCKET初始化的问题,运行平台在linux中,在windows中调试,就出现了socket一直<em>返回</em>-1的错误。解决办法是增加了两段代码,在windows中要使用socket,需要先注册。 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD(1, 1);...
socket通信乱码问题
这个问题困扰我很久了,一直想办法都不知道怎么解决,后来通过参阅相关资料,终于解决了.rnrnrn经验如下:rnrnrnsocket接收端要设置成gbk编码
记录一次websocket数据发送失败的原因
websocket项目,在本地运行那是妥妥的没有问题,在当部署到客户的uat环境的时候,就出现了诡异的情况:本人vpn拨号,可以正常的访问,但是客户那边的电脑登陆到系统,只要有消息往前端jsp页面发送数据,后台就报错,错误信息:Broken pipe (Write failed)。首先,用浏览器调试一下发现websocket的握手是正常的,然后就是网上各种找答案,发现其实大部分都是不是自己遇到的问...
什么情况下,发送端的send函数成功, 但发送端抓不到对应的网络包?------深入理解send函数
什么情况狂下,发送端的<em>send</em>函数成功, 但发送端抓不到对应的网络包? 这是一个很有趣的问题。n       我们看下服务端程序:n#include n#include n#include n#include n#include n#include n#include n#include n#include n#include n#include n#include n#include n#i
HTTP 常见异常状态及Delphi IDHTTP 控件处理方式
以下部分为网上查找,部分为工作中整理rn200:请求成功    rn202:请求被接受,但处理尚未完成    rn302:请求到的资源在一个不同的URL处临时保存     处理方式:重定向到临时的URL(IDHTTP处理方式 : IdHTTP.HandleRedirects := True;)rn404:没有找到URL     处理方式:确认网页是否正确rn415:请求格式问题    处理方式:设
IOCP之WSASend,0字节探测发送。工作线程真正发送。
IOCP_WSASend函数是多线程消息包发送函数,这里会进行加锁拷贝数据到缓冲区,然后检测当前是否正在发送过程中。如果没有正在异步发送,那么投递0字节发送。nnn#define OVL_RECEIVE 0X01n#define OVL_SEND0 0X02n#define OVL_CLOSE 0X03n#define OVL_SENDE 0X04nnn// 缓冲区安全锁n...
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
ConnectionResetError: [WinError <em>10054</em>] 远程主机强迫关闭了一个现有的连接。n错误结果:nTraceback (most recent call last):n File &quot;G:/python图片下载/dianshiju_db.py&quot;, line 25, in &amp;lt;module&amp;gt;n print(imgdon(&quot;http://tupian.tup...
关于socket send recv 两个函数各种错误说明
首先吐槽以下微软的socket的两个最重要的API:<em>send</em>函数和recv函数,本菜鸟感觉这两个函数是用来给程序员自己开发的函数,用起来跟翔一样的体验。nint recv(n _In_ SOCKET s,n _Out_ char *buf,n _In_ int len,n _In_ int flagsn);nnint <em>send</em>(n _In_ SOCK
C# 使用 SmtpClient.SendAsync 方法发送邮件失败,总是返回 Cancelled
问题:nn调用 SmtpClient.SendAsync,在 SendCompleted 的回调函数里面总是获取到 e.Cancelled 为 true。 n后来测试了一下,相同的代码,只是把 SmtpClient.SendAsync 改成 SmtpClient.Send 方法,邮件发送成功。nnnn原因:nn在发送邮件前把 SmtpClient 的实例释放了。因为 SendAsync 是一个异步...
GitHub push文件失败
在使用GitHub push最新的文件时,有时可能会出错,下面列出解决方案,这时需要用到GitShellrn1.报错如下rnfatal: The remote end hung up unexpectedlyrnfatal: The remote end hung up unexpectedlyrnerror: RPC failed; curl 56 SSL read: error:0000000
Socket套接字在多线程发送数据时要加锁吗
Socket套接字在多线程发送数据时要加锁吗n1)对于 UDP,多线程读写同一个 socket 不用加锁,不过更好的做法是每个线程有自己的 socket,避免 contention,可以用 SO_REUSEPORT 来实现这一点;n2)对于 TCP,通常多线程读写同一个 socket 是错误的设计,因为有 short write 的可能。假如你加锁,而又发生 short write,你是不是要一直...
ajax请求失败的状态码都是0
前言今天遇到个奇怪的问题,使用JQuery的ajax请求,后台的Controller层也接收到请求了,一切处理很正常,但是很奇怪,浏览器Debug发现,responseText是”error”,状态码是0而不是200.请求源码如下:$.ajax({n type: "POST",n url: targetUrl, n cache: fa
Win10下Anaconda3安装Tensorflow详细过程及遇到的问题
环境nnWin10 64位n下载nn我在清华镜像网站下载,下载较快,参考了一篇文章,上面说在官网上下载会有一些什么问题,具体不太清楚。镜像网站下载较快。nn清华镜像网站nn安装nnnnnextnnnn选第一个Just Mennnnnn选择两个,第一个是配置环境变量,如果不选可以手动添加。nn验证Anaconda是否安装成功的方法:nn命令窗口中输入“conda --version”  -----&amp;...
使用Anaconda的python安装虚拟环境出现错误
Windows利用Anaconda创建虚拟环境时报错:rnFetching package metadata …rnCondaHTTPError: HTTP 000 CONNECTION FAILED for url https://www.lfd.uci.edu/~gohlke/pythonlibs/win-64/repodata.jsonrnElapsed: -rnAn HTTP error occu...
WSAGetLastError() 返回10054
我用connect连接服务器成功,然后调用<em>send</em>给服务器发送数据,然后用recv接收服务器<em>返回</em>的数据,可是我用WSAGetLastError()却<em>返回</em><em>10054</em>的错误,请问这是为什么?怎么解决?
send 函数导致进程退出
本人之前没有做过网络方面的项目,对网络编程一知半解,最近写一个简单的网页遥控器程序,就是用网页绘制一个遥控器,然后点击遥控上的按钮,电视就会执行和真实遥控器相同的行为。于是写了一个简单的webserver,用C写的,写完后反复测试,发现服务器进程会莫名其妙的退出,很是诧异,通过加打印反复测试,发现问题出现在<em>send</em>函数上,可这是个函数出问题,我能怎办呀,愁死了。当然不可能是这个函数出问题了,这个函
windows socket错误码及出错原因
windows socket错误码及出错原因,可以参考一下。也可MSDN。
关于WinSocket Send内存泄漏的补充
服务器端代码rn[code=c]rnvoid CSMRS_Client::TestCommand()rnrn m_datAnswer.m_nFlag=CCommProtocol::AnswerError; //指示客户端服务器处理<em>失败</em>rn CJXSSQLDirect *pdb=m_pSql;rn// CJXSSQLDirect *pcnt=new CJXSSQLDirect();rn// pcnt->Connect(m_strConnect);rn// pdb=pcnt->GetQuery();rn if (pdb->IsConnected())rn rn int nDbRet=0;rn nDbRet=pdb->ExecuteSQL(_T(m_datCommand.m_strParam));rn int nCount=1;rn //nDbRet=SQL_SUCCESS;rn if (nDbRet==SQL_SUCCESS)rn rn int nIndex=0;rn int nSend=0;rn int nSkipRet=0;rn BOOL bEnd=TRUE;rn DWORD dwSkipCount=0;rn DWORD dwSendCount=0;rn while (TRUE)rn rn DWORD dwBegin=GetTickCount();rn nSkipRet=pdb->Skip();rn //nSkipRet=SQL_SUCCESS;rn nIndex++;rn DWORD dwEnd=GetTickCount();rn dwSkipCount+=dwEnd-dwBegin;rn if(nSkipRet==SQL_SUCCESS)rn rn m_datAnswer.m_nFlag=CCommProtocol::AnswerList; //指示客户端服务器有效数据开始rn m_datAnswer.ClearBuff();rn CString str1, str2;rn str2.Format(_T("Index:%d"), nIndex);rn //for (int iCol=0; iColGetColumnCount(); iCol++)rn //rn if (pdb->GetCol(_T("name"))!=NULL)rn //str1.Format(_T("%s"), (char *)pdb->GetCol(iCol));rn //str2+=str1;rn //rn strncpy(m_datAnswer.m_strValue, (char *)pdb->GetCol(_T("name")), 90);rn //strcpy_s(m_datAnswer.m_strValue, str2.Left(99).GetString());rn //printf("Index%05d, %s\n", nCount++, m_datAnswer.m_strValue);rn dwBegin=GetTickCount();rn BOOL bSend=SendOneFrame((char *)&m_datAnswer, sizeof(CCommProtocol::CAnsDataItem));rn //Sleep(1);rn //if (nIndex>=20000)rn //rn // m_datAnswer.m_nFlag=CCommProtocol::AnswerNoData; //指示客户端服务器有效数据结束rn // break;rn //rn dwEnd=GetTickCount();rn dwSendCount+=dwEnd-dwBegin;rn //if (dwEnd-dwBegin>20)rn // printf("Error code:%d, %s, titcount:%d, nIndex:%d\n", WSAGetLastError(), this->GetErrorMessage().GetString(), dwEnd-dwBegin, nIndex);rn if (!bSend)rn rn strcpy_s(m_datAnswer.m_strValue, "发送数据<em>失败</em>。");rn m_datAnswer.m_nFlag=CCommProtocol::AnswerError; //指示客户端服务器处理出现故障rn break;rn rn rn else if (nSkipRet==SQL_NO_DATA || nSkipRet==SQL_SUCCESS_WITH_INFO)rn rn m_datAnswer.m_nFlag=CCommProtocol::AnswerNoData; //指示客户端服务器有效数据结束rn break;rn rn elsern rn m_datAnswer.m_nFlag=CCommProtocol::AnswerError; //指示客户端服务器处理出现故障rn strcpy_s(m_datAnswer.m_strValue, pdb->GetError().Left(99).GetString());rn break;rn rn rn printf("Skip tick:%d, Send tick:%d, index:%d\n", dwSkipCount, dwSendCount, nIndex);rnrn rn else if (nDbRet==SQL_SUCCESS_WITH_INFO ||nDbRet==SQL_NO_DATA)rn m_datAnswer.m_nFlag=CCommProtocol::AnswerNoData;rn elsern rn m_datAnswer.m_nFlag=CCommProtocol::AnswerError; //指示客户端服务器处理出现故障rn strcpy_s(m_datAnswer.m_strValue, pdb->GetError().Left(99).GetString());rn rn //Sleep(200);rn rn elsern rn m_datAnswer.m_nFlag=CCommProtocol::AnswerError; //指示客户端服务器处理出现故障rn strcpy_s(m_datAnswer.m_strValue, pdb->GetError().Left(99).GetString());rn //printf("%s\n", pdb->GetError().Left(99).GetString());rn rn //delete pcnt;rn //pdb=NULL;rnrn[/code]rn客户端代码rn[code=c]rn if (m_pSocket==NULL || !m_pSocket->IsConnected())rn rn MessageBox(_T("请先连接服务器。")); rn return;rn rn UpdateData();rn memset(&m_datCommand, 0, sizeof(CCommProtocol::CCmdDataItem));rnrn m_datCommand.m_nCommand=CCommProtocol::SMRS_Live;rn strcpy_s(m_datCommand.m_strParam, m_strValue.Left(99).GetString());rn int nTimes=0;rn while(TRUE)rn rn //OnBnClickedButton1();rn nTimes++;rn m_nCommand=nTimes;rn UpdateData(FALSE);rn UpdateWindow();rn if (!m_pSocket->SendOneFrame((char *)&m_datCommand, sizeof(CCommProtocol::CCmdDataItem)))rn MessageBox(_T("发送")+m_pSocket->GetErrorMessage());rn elsern rn while(m_lstAnswer.GetCount())rn m_lstAnswer.DeleteString(0);rn int nIndex=0;rn while(TRUE)rn rn memset(&m_datAnswer, 0, sizeof(CCommProtocol::CAnsDataItem));rn int nRecv=0;rn if(!m_pSocket->ReceiveOneFrame((char *)&m_datAnswer, sizeof(CCommProtocol::CAnsDataItem),0,0))rn rn m_strAnswer.Format(_T("序号:%d,信息:%s,收到:%d,应收:%d\n错误信息:"), ++nIndex, m_datAnswer.m_strValue, rn nRecv, sizeof(CCommProtocol::CAnsDataItem),m_pSocket->GetErrorMessage());rn MessageBox(m_strAnswer);rn break;rn rn if (m_datAnswer.m_nFlag==CCommProtocol::AnswerUnkonwn) rn rn m_strAnswer.Format(_T("%d:%s"), ++nIndex, m_datAnswer.m_strValue);rn MessageBox(_T("接收")+m_strAnswer);rn break;rn rn else if (m_datAnswer.m_nFlag==CCommProtocol::AnswerNoData)rn rn //m_strAnswer.Format(_T("%d:%s"), ++nIndex, m_datAnswer.m_strValue);rn //MessageBox(_T("接收")+m_strAnswer);rn break;rn rn else if (m_datAnswer.m_nFlag==CCommProtocol::AnswerError)rn rn //根据需要择机重发命令rn m_strAnswer.Format(_T("%d:%s"), ++nIndex, m_datAnswer.m_strValue);rn MessageBox(_T("接收")+m_strAnswer);rn break;rn rn else if (m_datAnswer.m_nFlag==CCommProtocol::AnswerList)rn rn m_strAnswer.Format(_T("%d:%s"), ++nIndex, m_datAnswer.m_strValue);rn m_lstAnswer.AddString(m_strAnswer);rn //TRACE("%s\n",m_strAnswer);rn rn else //未知服务器响应码rn rn MessageBox(_T("接收了来自外星的反馈数据。\n")+m_pSocket->GetErrorMessage());rn break;rn rn rn rn //Sleep(2000);rn if (!m_pSocket)rn break;rn //OnBnClickedButton2();rn rn[/code]rn通信结构rn[code=c]rn#pragma oncernrn// CCommProtocol command targetrn//指定1字节对齐结构rn#pragma pack(1)rnrnclass CCommProtocol : public CObjectrnrnpublic:rn enum AnswerFlagrn rn AnswerUnkonwn=1, //服务器不能识别客户端命令,没有响应rn AnswerNoData, //服务器处理成功,但没有数据反馈rn AnswerList, //服务器处理成功,且响应了列表数据rn AnswerError //服务器处理<em>失败</em>rn ;rn enum Commandrn rn SMRS_Live=1,rn SMRS_BeginListrn ;rn class CCmdDataItem rn rn public:rn Command m_nCommand; //命令字rn int m_nCheckCode; //校验码rn char m_strParam[100]; //命令参数rn ;rn class CAnsDataItemrn rn public:rn Command m_nCommand; //命令字rn int m_nCheckCode; //校验码rn AnswerFlag m_nFlag; //服务器指示数据有效性,见枚举值rn char m_strValue[100]; //反馈值,当m_nFlag=AnswerError时,是错误信息rn void ClearBuff(void)memset(m_strValue, 0, sizeof(char)*100);rn ;rnpublic:rn CCommProtocol();rn virtual ~CCommProtocol();rn;rn[/code]
非阻塞式connect的Windows实现
下面是connect的MSDN文档。由划线部分可知,当socket设置为非阻塞模式时,connect发起后会立即<em>返回</em>,然而,“三次握手”却依然进行,此时,connect<em>返回</em>SOCKET_ERROR,WSAGetLastError()<em>返回</em>WSAEWOULDBLOCK。如果需要判断connect是否成功,可以使用select()函数,当connect成功时,socket文件描述符写就绪;当connec
Python爬虫出现错误:ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
nTraceback (most recent call last):n File &quot;&amp;lt;input&amp;gt;&quot;, line 1, in &amp;lt;module&amp;gt;n File &quot;D:\APP\pycharm\PyCharm 2018.2.1\helpers\pydev\_pydev_bundle\pydev_umd.py&quot;, line 194, in runfilen pydev_...
WinSocket实现的服务端与客户端的通信
服务端 n - 通过对敏感词“蓝鲸”的判断,服务端主动关闭与客户端的连接,测试服务端发起的closesocket操作 n - 服务端的accept、recv都是阻塞的#include n#include n#include n#include n#pragma comment(lib, "ws2_32.lib")us
WinHttp方法通过HTTP协议向服务器发送请求,返回结果
URL_COMPONENTS urlComp;rnDWORD dwSize = 0;rnWCHAR* lpOutBuffer = NULL;rnHINTERNET hSession = NULL,hConnect = NULL , hRequest = NULL;rnBOOL bResults = FALSE;rnZeroMemory(&urlComp,sizeof(urlComp));rnurl
linux非阻塞的socket发送数据出现EAGAIN错误的处理方法
一、非阻塞socketn        非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即<em>返回</em>。比如调用recv()函数读取网络缓冲区中数据,不管是否读到数据都立即<em>返回</em>,而不会一直挂在此函数调用上。在实际Windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的C/S(客户端/服务器)结构的软件就是异步非阻塞模式的。 nint32_t flags = fcntl
socket()返回0问题总结
系统:Linuxnn最近在做FTP上传文件相关的功能时,FTP控制连接和数据连接是自己代码实现的,发现在FTP上传完文件,在其他功能进行调用socket()函数创建socket描述符时,始终<em>返回</em>0.nn经过查找,发现<em>返回</em>0意味着套接字创建成功,说明系统分配了可用的文件描述符为0.描述符0是标准输入,正常情况它应该是被占用的,所以在之前进行FTP相关操作时关闭了描述0,close(0),一旦它关闭,...
wallproxy Errno 10054
wallproxy Errno <em>10054</em> 解决方法
调用socket send()返回失败是怎么回事?
我的代码是这样写的:rn1、生成一个socketrnsocket1=socket(AF_INET,SOCK_DGRAM,0);rn2、建立socket与服务器的连接rnconnect(socket1, (const sockaddr *)&server, len) ;//申请UDP套接字rn3、发送数据rnwhile(buf_len) rnrn <em>send</em>( socket1, <em>send</em>buf, bytes, 0 );//发送rtp包rnrnrn问题的现象是:对<em>send</em>()函数的调用一次成功一次<em>失败</em>,成功时<em>返回</em>发送的字节数,<em>失败</em>时<em>返回</em>-1.请问为何会出现<em>send</em><em>失败</em>的情况?多谢各位大侠!
windows socket简单使用--实现客户端链接服务端并发送和接收数据
windows socket简单使用--实现客户端链接服务端并发送和接收数据
linux网络编程send/recv产生的errno详解
详细介绍<em>send</em>或recv系列函数产生的errno情况
drozer常见错误指引
drozer是一个强大的漏洞管理工具,能帮组查找安卓中存在的缺陷。n  drozer的安装很简单,但是刚开始的时候,有可能会遇到一些奇怪的错误,这里把常见的错误列下,方便大家解决。nnn 1 首次安装的时候,容易出现java无法找到。这是因为系统中少了个配置文件。按下面方法进行操作n 在桌面新建一个drozer.txt文件。然后把本机的Java地址复制上去n java = C:\Pro
linux c之解决使用socket函数返回为0的问题
1、问题:n在 linux 平台下 写socket,实现简单的tcp通信,服务端第一次调用 socket函数<em>返回</em> 0nnn2、找原因:n我的代码是这样写的nnn if ((server_sockfd = socket(AF_INET,SOCK_STREAM, 0) nn特么总是<em>返回</em>0,日了狗n自找方法一:n到网上找为什么socket函数<em>返回</em>0,5分钟过去,没反应
Tftp32连接开发板遇到的问题
使用Tftp32,一直显示127.0.0.1和其它ip,怎么设置开发板都不行,原因:ping不同->电脑和开发板没有连接!!!rn如果遇到无法访问目标主机 请关闭防火墙!rn我做过的尝试:试用手机网络分享的局域网Ip,<em>失败</em>.........原因不详rn后来发现使用本地连接,一开始我的本地连接被禁用了,开启后就有ip,设置开发板ip为该网段下随意值(没网也能互连的当然是本地连接!)rn(1)看你需不
socket函数返回值分析
服务端:rnrnrnrnrn1 WSAStartup(版本,本机的最高版本)rnrnWSAStartup函数的第一个参数是加载WinSock库的版本,WSAStartup函数的第二个参数中设置使用的WinSock库的版本,当正确初始化时,WSAStartup会<em>返回</em>0。但我在WSAStartup函数的第一个参数中胡乱设置了一个版本号,WSAStartup仍然会<em>返回</em>0。rnrn如果在WSAStartu
c++ windows Socket实现的一个http类
自己写的socket访问http的类 支持代理访问 支持利用X-Forwarded-For伪造ip 实现了自动记录并提交cookie 新手写得很不好,有问题请email gongzi@live.hk
解决Linux下网络编程(sendto send )出现 SIGPIPE 信号导致程序异常终止的问题
引言n最近在Linux下网络编程时,出现SIGPIPE 信号导致程序异常终止,本文记录下解决的方法以及相应的知识。nSIGPIPE 信号资料n什么时候出现此信号,APUE中有关此信号的解释如下:nnLinux man手册有关此信号的解释:nman 7 signal nSIGPIPE 13 Term Broken pipe: write to pipe with no r...
socket accpet()总是返回-1的问题
当在消息等待时,accept()函数值一直<em>返回</em>-1,原因是accept函数是阻塞的,当socket 设置为非阻塞时,就会<em>返回</em>错误-1值。
使用Git clone代码失败的解决方法
今天从GitHub上找到一份代码,想要clone到本地,便利用Git去clone代码,结果报了以下错误:nnnerror: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno <em>10054</em>nfatal: The remote end hung up unexpectedlynfatal: early EOFnfatal: in...
【Python爬虫错误】ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接
今天写爬虫爬取一个基金网页(http://fund.eastmoney.com/)时出现如下图所示的错误。n分析原因,是因为使用urllopen方法太过频繁,引起远程主机的怀疑,被网站认定为是攻击行为。导致urlopen()后,request.read()一直卡死在那里。最后会抛出异常<em>10054</em>。nnnnnn具体的解决方法如下nnn在request后面写入一个关闭的操作,req
send、recv等socket编程接口的阻塞与非阻塞模式.md
socket编程中经常使用<em>send</em>和recv函数来接收和发送数据。 n对于系统来说,不管是发送数据还是接收数据,都不是直接在内存上操作的。 发送数据有发送缓冲区,接收数据有接收缓冲区。对于<em>send</em>来说,<em>send</em>函数调用时,先将将应用程序请求发送的数据拷贝到发送缓存中,而后驱动程序会去读取发送缓冲中的数据,在进行真正的传输。 n对于recv来说,recv只是从接收缓冲中读取数据,而接收缓存中的数据来自
缓冲区满时send 阻塞分析
1. Send 缓冲区满时阻塞代码:nSend底层调用函数tcp_<em>send</em>msg:n nnnnntcp_<em>send</em>msg:n。。。。。。。。。。。。。。。。。。。。。。。。。。。。。nnew_segment:n/* Allocate new segment. If the interface is SG,n * allocate skb fitting to single pa
WinSock的recv返回值处理
今天在调试程序的时候发现,客户端调用closesocket时,服务器应该会<em>返回</em>SOCKET_ERROR,实际上Debug版本是这样,但Release版本并不是。相同的代码Debug<em>返回</em>了-1,Release<em>返回</em>了0。通过看msdn的原文可以发现:If no error occurs, recv returns the number of bytes received and the buffer p
php考试题目
php考试题目,1关于mysql_select_db<em>返回</em>值正确的是: A. 成功开启<em>返回</em>1,<em>失败</em><em>返回</em>0 B. 成功开启<em>返回</em>一个连接标识,<em>失败</em><em>返回</em>false C. 成功开启<em>返回</em>True,<em>失败</em><em>返回</em>False D. 成轼开启<em>返回</em>True,<em>失败</em><em>返回</em>一个错误号
winsocket入门学习
WD--<em>返回</em>WinSock的实现信息。nWD是一个WSAData结构:ntypedef struct WSAData {n WORD wVersion;n WORD wHighVersion;n#ifdef _WIN64n unsigned short iMa
UDP错误10054:远程主机强迫关闭了一个现有的连接
原文地址:http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic1887.aspxnn在公司一项目的UDP消息服务开发中时不时的会遇到这样一个问题:在UDP通信过程中,如果客户端中途断开,服务器会收到一个SocketException,错误ID为<em>10054</em>,描述是“远程主机强迫关闭了一个现有的连接”,紧接...
NodeJs——(14)express框架的send()方法简介
(35)express框架的<em>send</em>方法n①<em>send</em>方法用的还挺多的,因此需要明确其作用;n n②原型是:nres.<em>send</em>([body|status], [body])n n即既可以直接发送内容,也可以第一个参数状态,第二个参数内容。n n如果直接发送内容的话,状态会被自动补全;n n③发送的内容:n示例:nnres.<em>send</em>(newBuffer('whoop'));
解决phpmailer后的总结
这两天,在开发一个登陆注册系统,要做好一个注册系统,我想验证码肯定是必不可少的,毕竟设置这个验证码有很多的用途,其一,可以防止被人恶意注册,防止sql注入;其二,可以用来验证对方的手机或者邮箱是真实的信息。rn由于我没有那么多的经济能力,所以没办法使用手机短信验证,因此我只能通过邮箱来验证信息。那么问题来了,怎么使用邮箱验证呢?rn我去找了很多,一开始,我是直接用了mail()这个函数,然后肯定是
Winsocket模块
由个人独立开发,请勿盗版,谢谢大家的支持,这款模块可以帮大家解决很多的问题
Windows下C 用 Socket 发送图片--基础
Windows下C 用 Socket 发送图片--基础rnrnrn服务器端:rn#include n#include n#include n#define SERVER_PORT 9210 //侦听端口n#pragma comment(lib,"ws2_32.lib")nnstruct Data //数据包n{n int length;n char receivemessage[2000]; //
python调用rabbit异常信息
pika.exceptions.ProbableAccessDeniedErrornnnnnnNo access,你可以直接点击用户名,设置一个默认的nnnnn也可以用命令设置nn命令设置权限方式为:nn>> rabbitmqctl set_permissions -p '/' yueer01 ".*" ".*" ".*"Setting permissions for
WinSocket编程例子(TCP和UDP)
首先我们先来了解一下TCP和UDP的工作流程:nTCP:nnnTCP的工作流程图nnUDP:nnnUDP的工作流程图nn我们用TCP来做一个例子实现服务器和客户端数据的交换。nnserver端:n#include "stdafx.h"n#include n#include nn#pragma comment(lib,"ws2_32.lib") nnint _tmain(
WSAGetLastError()返回代码10054的问题
跟贴有分,rn如果在局域网上程序不会有问题;但是远程(同城)就会报<em>10054</em>的错误;很着急。解决了再开贴散分。代码如下rn服务端:rnsocktmp = accept(ProListen, (struct sockaddr *)&client,&iAddrSize); rn //if (socktmp == INVALID_SOCKE) //modi by ckl 并非真正的超时rn if (socktmp == INVALID_SOCKET && socktmp !=WSAEWOULDBLOCK)rn rn int errorid = WSAGetLastError();rn printf("接受工作进程连接错误。Error ID = %d\n",errorid);rn if(errorid == WSAENOTSOCK )rn rn exit(0);rn rn elsern continue;rn rnrn hThread = CreateThread(NULL, 0, TimerThread, rn (LPVOID)0, 0, &dwThreadId);rn if (hThread == NULL)rn rn printf("定时线程出错。Error ID = %d\n", GetLastError());rn break;rn rn TimerFlag = 1;rn CloseHandle(hThread);// ckl crnrn ::setsockopt(socktmp,SOL_SOCKET,SO_RCVBUF,(char *)&bufsize,4);rn ::setsockopt(socktmp,SOL_SOCKET,SO_SNDBUF,(char *)&bufsize,4);rnrn CurrProData=0;rn while((ProDataUsedNum[CurrProData])&&(CurrProData
Windows用socket实现文件传输
这里只写客户端代码。编译前请加上libws2_32.a链接库,不然会导致链接<em>失败</em>。n客户端:n#include n#include n#pragma comment(lib,"ws2_32.lib")n#define IPADDR "192.168.253.2"n#define PORT 3574nint main(int argc,char **argv)n{n int err;
关于C++中使用socket accept错误值为10022的一个原因
最近在写一个java和c++通信的模块,在外部建了个小程序抄抄网上代码没问题,但是移到了主工程却出错了rnrnrn几经排查将目光集中在了bind函数上rnrnrn因为之前抄的代码没对bind进行判断,那么就试着判断了一下,发现主工程上的bind<em>返回</em>值居然不是intrnrnrnok F12看一下,这个bind居然是functional.h里的一个函数,而我们要使用的bind应该是WinSock2.h
TCP发送数据失败问题
最近被安排做的锻炼项目里有一个TCP相关的发送,刚开始还没什么问题,后来发送的数量上来了就发现数据有时候会发送<em>失败</em>,一开始我们选择多发几次,后来数据上千之后就发现一千多条只能接收到几百条,百度之后发现是因为TCP的发送的原理是,当两次发送的数据时间间隔很小的时候TCP会将数据存放在TCP协议栈的缓存区里,直到缓存区满了,或者停止发送了才会将数据发送出去,我们猜测是因为缓存区太小了,socket默认...
在tcp半开连接(也就是死连接)上send数据, send函数会成功吗? 后续会怎样?
A, B两端tcp建立连接后, 如果中间的交换机断网、断电, 或者B端突然断电, 那么A是无感知的(不考虑心跳机制)。 有些书上喜欢把这种连接叫半开连接, 其实我更愿意叫它为死连接。 rn       此时, 如果A端<em>send</em>一些数据, 会怎样呢? 只要A端的发送内核缓冲区没有满(一般都没满), 那么<em>send</em>函数就是成功<em>返回</em>得, 很显然, 在B端是接收不到数据的。 这再次说明了, <em>send</em>函数和实
UDP之sendto错误解决
照着视频敲完代码,发现错误:nnnn 一直百度,发现参数没有问题。。等等nn于是一个代码一个代码对比:nnnn没有写type=。。。。尴尬了nn以后还是要细心...
Java中封装的全局日期处理工具类
获取SimpleDateFormat 获取日期中的某数值。如获取月份 增加日期中某类型的某数值。如增加日期 获取精确的日期 判断字符串是否为日期字符串 获取日期字符串的日期风格。失敗<em>返回</em>null。 将日期字符串转化为日期。<em>失败</em><em>返回</em>null。 将日期字符串转化为另一日期字符串。<em>失败</em><em>返回</em>null。 增加日期的年份。<em>失败</em><em>返回</em>null。 增加日期的月份。<em>失败</em><em>返回</em>null。 增加日期的天数。<em>失败</em><em>返回</em>null。 增加日期的小时。<em>失败</em><em>返回</em>null。 增加日期的分钟。<em>失败</em><em>返回</em>null。 增加日期的秒钟。<em>失败</em><em>返回</em>null。 获取日期的年份。<em>失败</em><em>返回</em>0。 获取日期的月份。<em>失败</em><em>返回</em>0。 获取日期的天数。<em>失败</em><em>返回</em>0。 获取日期的小时。<em>失败</em><em>返回</em>0。 获取日期的分钟。<em>失败</em><em>返回</em>0。 获取日期的秒钟。<em>失败</em><em>返回</em>0。 获取日期。默认yyyy-MM-dd格式。<em>失败</em><em>返回</em>null。 获取日期的时间。默认HH:mm:ss格式。<em>失败</em><em>返回</em>null。 获取日期的星期。<em>失败</em><em>返回</em>null。 获取两个日期相差的天数 。 获取两个日期相差的毫秒数 。 获得两个日期之间的连续日期.。 将时间转换为时间戳。 获取连续月份。 两个时间相差距离中文描述 。 比较两个时间的大小。
Websocket————错误总结
n n &amp;#13;n websocketn一、需要注意的是,js建立连接处完整的js代码要执行完成退出后才会真正发起建立连接请求,如果在此之前发送消息则会报错如下:nnInvalidStateError: An attempt was made to use an object that is not, or is no longer, usablenn解决办法:在websocket已...
socket函数一直返回-1的问题
今天遇到了一个SOCKET初始化的问题,运行平台在linux中,在windows中调试,就出现了socket一直<em>返回</em>-1的错误。rn经网上查找后得以解决,解决办法是增加了两段代码,在windows中要使用socket,需要先注册。rn以下为示例代码rn//初始化TCPnResult TcpClient_Init(int localPort)n{n //add by guoyong Use t
Socket怎么加入组播组
byte[] b = new byte[10240];try{    String multiAddress = &quot;225.0.38.123 &quot;;//Datagrams.getMultiIPAddress( &quot;192.168.2.106 &quot;);     Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, Pro...
Git远程推送常见错误及解决方案:
Git远程推送nn1、问题:git远程提交时出现错误:nnerror: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errfno <em>10054</em> nn原因分析:可能是文件过大导致。nn解决方法:在要推送的文件夹下右键打开git bash here输入命令:nnnn#首先设置通信缓存大小ngit config http.postBu...
使用bower安装bootstrap遇到的问题
在用bower管理安装bootstrap时遇到EACCES的权限不够的问题:rnrnrn解决方式:rn通过chown命令修改权限:
netlink发送和接收
内核态n1、初始化n首先当然是调用netlink_kernel_create函数,具体参数参考前一篇文章。n#define NETLINK_ETRAINF 17nstruct sock * g_etraInfSock = NULL;ng_etraInfSock = netlink_kernel_create(&init_net, NETLINK_ETRAINF,\n 0, EtraInf
socket在发送一段时间数据后send卡死问题的解决
近期在对新做的服务器做压力测试时,发现服务端在接收一阵子数据之后便不再响应,不能接收新的连接,也不能接收新的数据。并且服务端接收到的数据个数非常有规律,每次都基本固定。
Flask文件下载send_from_directory中文报错处理
之前因为flask_restful接受中文参数有问题改了系统默认编码nnnsys.setdefaultencoding('utf8')nnn本来以为之后就没有中文问题了,没想到文件下载<em>send</em>_from_directory有个坑,运行下面代码报错nnnreturn <em>send</em>_from_directory(dirpath, filename, as_attachment=True)nnTypeErr...
Window系统 Socket编程发送心跳排坑记录(socket.sendUrgentData)
排坑背景n在工作中两个部门避免不了相互协作进行开发,开发过程中会遇到很多问题,当出现两遍代码都没问题的场景,有时会出现互相推诿的现象,那么我们如何去解决问题成为了关键。n场景描述n在socket编程中除了需要发送业务报文,有时还需要发送心跳进行检测,然后进行重连机制。在工作中我们的场景是A系统调用B系统,B系统<em>返回</em>的报文需要调用C系统进行签名,然后<em>返回</em>给A系统。B系统调用C系统使用的是Socket...
PB Winsocket完整实例
PB Winsocket最新完整实例。在PB10下调试通过。
【问题】python安装包问题
今天需要安装一个pandas_datareader包nnpip、powershell和conda安装都报错nn问题:nnpip 管理员模式报错如下,而且任何包都会出错:nnnC:\Windows\system32&amp;gt;pip install pandas-datareadernCollecting pandas-datareadern Retrying (Retry(total=4, conn...
网络编程作业(winsocket实现聊天程序)
研究生网络编程作业,所有的结构与代码均由自己实现,适合用于上交老师布置的聊天程序编写作业
av_read_frame 连续读包出现EOF的问题
昨天发现的问题,在解码ape文件的时候,解码没几回就出现了EOF,但是文件肯定是还没有读完的。一开始以为是解码出现的问题,后来测试其他格式的文件解码没有问题,唯独ape这块儿有这个问题。rn今天调试的时候,发现ape读出来的paket size很大,而且发现通过avcodec_decode_audio4来解码数据的时候,<em>返回</em>值总是0。于是猜想,是不是可能包没有解码玩就丢弃了。rn然后,通过进一步调
强连通分量及缩点tarjan算法解析
强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Time, DFN[N], Low[N]; DFN[i]表示 遍历到 i 点时是第几次dfs Low[u] 表示 以u点为父节点的 子树 能连接到 [栈中] 最上端的点   int
【VR技术开放日】基于HTC+Vive的VR游戏开发入门-冀盼下载
在VR技术开放日上,奥秘游戏CTO冀盼发表《基于HTC Vive的VR游戏开发入门》主题演讲。HTC Vive开发VR游戏,硬件需配备头显及双手柄,PC以i5 970为最低配置,设置Room Scale模式,内容分发平台有Steam、Vive及奥秘,开发引擎可使用Unity 3D和Unreal。游戏开发过程中需重点关 注输入输出方式变化、近似无2D界面、数学和物理、场景的应用以及联网和数据同步等方面。 相关下载链接:[url=//download.csdn.net/download/tangxiaoyin/9560168?utm_source=bbsseo]//download.csdn.net/download/tangxiaoyin/9560168?utm_source=bbsseo[/url]
matlab源程序(可以借鉴)下载
通信中M序列是一个重要的关键,该程序是M序列产生程序 相关下载链接:[url=//download.csdn.net/download/hsl_321/2230499?utm_source=bbsseo]//download.csdn.net/download/hsl_321/2230499?utm_source=bbsseo[/url]
CCNA笔记 红头发CCNA下载
CCNA笔记 考640-802的必看 里面简要的涵盖了考试的复习要点 相关下载链接:[url=//download.csdn.net/download/zfx235/3063232?utm_source=bbsseo]//download.csdn.net/download/zfx235/3063232?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习失败经历分享 java学习失败想转实施
我们是很有底线的