抓包工具已经看到数据到本机,但是recvfrom 读不到数据的问题? [问题点数:100分,结帖人jdzfjfhnui]

Bbs5
本版专家分:2104
结帖率 100%
Bbs12
本版专家分:361009
版主
Blank
名人 2013年 荣获名人称号
Blank
探花 2011年 总版技术专家分年内排行榜第三
2010年 总版技术专家分年内排行榜第三
Blank
进士 2012年 总版技术专家分年内排行榜第五
Blank
金牌 2012年1月 总版技术专家分月排行榜第一
关于UDP的recvfrom不到数据问题,请高手帮忙
先把我遇到的<em>问题</em>部分的代码贴出来: bool CTestSession::getNATAddress(CAddressInfo aoNATServer) { int iReady; struct so
抓包不丢包udp系统层丢包
<em>问题</em>描述:两个不同的应用程序,分别运行在linux服务器A,linux服务器B,跨网段进行udp<em>数据</em>传输,中间经过一种网闸设备(一种安防行业的跨网段的网络设备),服务器A发送<em>数据</em>,服务器B接收<em>数据</em>,服务器B抓包有<em>数据</em>,<em>但是</em>层用程序没有收到。 排查思路如下: 1、对应用程序调用系统接口的recv处进行写文件操作,将接收到的<em>数据</em>写入到文件中,发现文件为空,初步认为应用层没有收到<em>数据</em> 2、将接收数...
抓包收到,在udp中未收到
如题: 代码如下: 服务端: class UdpService2 { IPEndPoint m_ServerIP; List client_list; bool m_bStar
UDPchecksum值不对导致可以抓包获取到但是应用层recvfrom无法接收到数据
UDP checksum 今天在驱动里面改了UDP packet的payload,发出这个UDP包之后,对方在驱动里面能收到这个包。 <em>但是</em>indicate给OS之后,APP却收<em>不到</em>这个包。Debug了一段时间之后,我怀疑应该是checksum之类的<em>问题</em>,果然… 简单讲下UDP的checksum: UDP字段占用8个字节,checksum就是最后的两个字节,如果checksum==0,那么Recei...
数据已经连上,却读不到数据
[code=VB] t = Format(Now(), "yyyymmdd")rn tt = PATH1 & "\" & t & ".dbf"rn rn If Dir(tt, vbHidden) = "" Then '' 判断文件是否存在rn Label2.Caption = Now() & " 1#生产<em>数据</em>库连接失败!"rn Label2.ForeColor = vbRedrn Exit Subrn Elsern t = Format(Now(), "yyyymmdd")rn rn End Ifrn If (dbcon.State <> 1) Thenrn Set dbcon = New ADODB.Connectionrn str = "Provider=MSDASQL.1;Driver=Microsoft Visual Foxpro Driver;SourceDB=" & PATH1 & ";SourceType=DBF;"rn dbcon.CursorLocation = adUseClientrn On Error Resume Nextrn dbcon.Open str ''打开A楼<em>数据</em>库rn If dbcon.State <> 1 Thenrn Label2.Caption = Now() & " 1#生产<em>数据</em>库连接失败!"rn Label2.ForeColor = vbRedrn Exit Subrn Elsernrn Label2.Caption = Now() & " 1#生产<em>数据</em>库连接成功!"rn Label2.ForeColor = vbWhitern End Ifrn End Ifrn Set db_rs = New ADODB.Recordsetrn sql = "select * from " & tt & " order by SJ"rn db_rs.Open sql, dbcon, adOpenKeyset, adLockOptimisticrn If db_rs.RecordCount > 0 Thenrn db_rs.MoveFirstrn Do While Not db_rs.EOFrn pTime = Trim(db_rs.Fields("SJ"))rn GCMC = Trim(db_rs.Fields("GCMC"))rn If Trim(db_rs.Fields("GCBW")) <> "" Thenrn GCBW = Trim(db_rs.Fields("GCBW"))rn Elsern GCBW = ""rn End Ifrn rn db_rs.MoveNextrn Looprn [/code]rndb_rs.RecordCount > 0 这句提示<em>数据</em>提供程序或其他服务返回 E_FAIL 状态
InternetReadFileExA()返回TRUE,但是不到数据
WinInet异步。rnInternetReadFileExA(hRequest, &inetBuf, IRF_ASYNC, (DWORD_PTR)pHttp) 返回TRUE,<em>但是</em>inetBuf.dwBufferLength == 0,请问可能是什么原因?rn不会没有<em>数据</em>的,因为我改成同步后—— hInternet = InternetOpen(HTTP_AGENT_NAME_DEF, INTERNET_OPEN_TYPE_PROXY, param.szProxy, NULL, 0) ,inetBuf.dwBufferLength就有值了,而且<em>数据</em>正常。
读SQLite读不到数据
有一个主程序,main和一个后台服务程序server。都对<em>数据</em>库SQLite SQL进行读写操作。rn有时,我发现,server<em>已经</em>写入了<em>数据</em>到sql了。然后发消息通知main,main收到后,读取<em>数据</em>库,是读取不了,有时,能读取出来,<em>但是</em><em>数据</em>却填充不了!rnrn是因为server和main建立到SQL链接,都会有一个缓存区?
MEMORYSTREAM问题,读不到数据
做一个文件修复函数,从文件名,查找字符,比对,再替换字符。rnrn<em>但是</em>在ARRAY OF CHAR遇到<em>问题</em>,如果手动设置数组,READBUFFER可以读到<em>数据</em>,替换也正常。rnrn现在用动态数组做动态列表修复,<em>但是</em>SetLength(CmpStr,RepairStrLen)后,SIZEOF(CmpStr)值永远为4,而且读取<em>不到</em><em>数据</em>。rnrn全部家当送上rn[code=Delphi(Pascal)]rnfunction TMainFrm.RepairStr(sFileName:String;FindStr:string;RepairStr:String;RepairStrLen:integer):Boolean;rnvarrn TmpMemoryStream : TMemoryStream;rn CmpStr : array of Char;rn CmpStr1 : array of Char;rn FileSize,iAddress : Integer;rn bWrite : Boolean;rn s : String;rn I : Integer;rnbeginrn bWrite := False;rn Result := False;rn tryrn TmpMemoryStream := TMemoryStream.Create;rn tryrn TmpMemoryStream.Clear;rn TmpMemoryStream.LoadFromFile(sFileName);rn FileSize := TmpMemoryStream.Size;rn TmpMemoryStream.Position:=TmpMemoryStream.Size;rn TmpMemoryStream.Position:=0;rn SetLength(CmpStr,RepairStrLen);rn SetLength(CmpStr1,RepairStrLen);rn SetLength(s,FileSize);rn CopyMemory(@s[1],TmpMemoryStream.Memory,TmpMemoryStream.size);rn iAddress := Pos(FindStr,s) - 1;rn TmpMemoryStream.Seek(iAddress,0);rn TmpMemoryStream.ReadBuffer(CmpStr, SizeOf(CmpStr));rn TmpMemoryStream.Seek(iAddress,0);rn TmpMemoryStream.ReadBuffer(CmpStr1, SizeOf(CmpStr1));rn TmpMemoryStream.Seek(iAddress,0);rn For I := 0 to RepairStrLen dorn beginrn if CmpStr[I] <> RepairStr[I+1] thenrn CmpStr[I] := RepairStr[I+1];rn end;rn if string(CmpStr) <> string(CmpStr1) thenrn beginrn TmpMemoryStream.WriteBuffer(CmpStr, SizeOf(CmpStr));rn bWrite := True;rn end;rn Finallyrn Result := True;rn if bWrite = True thenrn TmpMemoryStream.SaveToFile(sFileName);rn TmpMemoryStream.Free;rn end;rn exceptrn TmpMemoryStream.Free;rn Result := False;rn exit;rn end;rnend;[/code]
不到串口数据
procedure TForm1.Timer1Timer(Sender: TObject);rnvarrnbf: array[0..10] of char;rnn:cardinal;rnbeginrnn:=0;rnif readfile(hcom,bf,10,n,nil) thenrnlistbox1.Items.Add(bf);rnend;rnrnprocedure TForm1.FormCreate(Sender: TObject);rnvar dcb:TDCB;rnbeginrnhcom:=createfile('com1',GENERIC_READ and GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);rnif hcom=invalid_handle_value thenrnbeginrnshowmessage('打开串口失败!') ;rnexit;rnend;rnif not GetCommState(hCom,dcb) thenrnbeginrnshowmessage('读串口状态失败!') ;rnexit;rnend;rndcb.BaudRate:=1200;rndcb.ByteSize:=8;rndcb.Parity:=NOPARITY;rndcb.StopBits:=ONESTOPBIT;rnif SetCommState( hCom, dcb ) thenrnrnif not SetupComm( hcom, 1024, 1024 ) thenrn beginrn CloseHandle( hcom );rn showmessage('设置缓冲失败!')rn end;rnend;
关于udp socket recvfrom函数的一个易错问题: 如果应用程序指定的接收长度不够怎么办?
我们来看这样一个<em>问题</em>, 在udp socket变成中, sendto连续三次发送10个字节的<em>数据</em>,
组播tcpdump可以抓到,但APP收不到,求策略或解释
如题: 一个组播程序,绑定到了224.188.188.188.30583上, tcpdump可以抓到组播包<em>数据</em>,但应用层且接收<em>不到</em>. 部分代码: #define GROUP "224.188.188.
udp端口接收不到数据BUT抓包可以抓到数据,why?
今天在做网络开发的时候,在向一台服务器上发送<em>数据</em>的的时候,可是在服务器监听udp端口的程序一直接收<em>不到</em><em>数据</em>,可是经过<em>抓包工具</em>,可是能够抓到<em>数据</em>,这到底是什么原因呢?晕倒中..... 我在服务器做的程序又是写成了windows服务,所以一直找<em>不到</em><em>问题</em>的所在,一直郁闷中....灵光
recvfrom接收不到数据,求解
用SmartSniff抓包<em>看到</em>接收缓冲区里有<em>数据</em>,可是用<em>recvfrom</em>接收<em>数据</em>时,有时可以接收到<em>数据</em>,有时却收<em>不到</em><em>数据</em>,求解释。
Udp 发送成功 但是接收端 没有收到数据包 是为什么? 求关注 求分析 求解答
想要实现的是一个UDP推送功能, 实现 把<em>本机</em>接收到的UDP<em>数据</em> 直接转发到另一个Point,相当于一个传送功能。 遇到的<em>问题</em>:在<em>本机</em>测试, 使用netport<em>抓包工具</em> 可以<em>看到</em><em>本机</em>把收到的<em>数据</em>进行了
串口读不到数据
用API编写的程序,为什么串口读<em>不到</em><em>数据</em>rnBOOL CCSerialApp::OnStart() rnrn // TODO: Add your command handler code herern DCB dcb;rn //打开串口,得到串口句柄rn hCOM=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,rn 0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);rn if(hCOM==INVALID_HANDLE_VALUE)rn return false;rnrn //初始化串口,READBUFFER,WRITEBUFFER是用户自己定义的rn SetupComm(hCOM,1024,1024);rn PurgeComm(hCOM,PURGE_TXCLEAR|PURGE_RXCLEAR);rnrn //设置DCB参数rn if(!GetCommState(hCOM,&dcb))rn rn CloseHandle(hCOM);rn return false;rn rn dcb.BaudRate=9600;rn dcb.ByteSize=8;rn dcb.Parity=NOPARITY;rn dcb.StopBits=ONESTOPBIT;rn if(!SetCommState(hCOM,&dcb))rn rn CloseHandle(hCOM);rn return false;rn rn //设置超时值rn COMMTIMEOUTS to;rn to.ReadIntervalTimeout=MAXDWORD;rn to.ReadTotalTimeoutConstant=0;rn to.ReadTotalTimeoutMultiplier=0;rn to.WriteTotalTimeoutConstant=0;rn to.WriteTotalTimeoutMultiplier=0;rn if(!SetCommTimeouts(hCOM,&to))rn rn CloseHandle(hCOM);rn return false;rn rn //初始化OVERLAPPEDrn memset(&overlapped,0,sizeof(OVERLAPPED));rn overlapped.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);rn if(overlapped.hEvent==NULL)rn rn AfxMessageBox("WRONG");rn return false;rn rnrn //用事件驱动方式需设置事件代码rn if(!SetCommMask(hCOM,EV_RXCHAR))rn rn CloseHandle(hCOM);rn return false;rn rn total=0;rn Receive();rnrnvoid CCSerialApp::Receive()rnrn DWORD dwEvent,dwError;rn DWORD nRealRead,i,dwLength;rn char seq[100];rn int begin;rn int j;rn dwEvent=dwError=0; rn if(WaitCommEvent(hCOM,&dwEvent,&overlapped))rn rn rn ClearCommError(hCOM,&dwError,&comstat);rn dwLength=comstat.cbInQue;rn if((dwEvent&&EV_RXCHAR)&&dwLength)rn rn LPBYTE inBuffer=new BYTE[dwLength];rn BOOL fReadStat=ReadFile(hCOM,inBuffer,dwLength,rn &nRealRead,&overlapped);rn if(!fReadStat)rn rn dwError=GetLastError();rn if(dwError==ERROR_IO_PENDING)rn rn GetOverlappedResult(hCOM,&overlapped,&nRealRead,TRUE);rn overlapped.Offset=0;rn rn rn elsern dwLength=0;rn rn elsern rn for(i=0;i
Request.ClientCertificate 读不到数据
我在本地的IE里查看了 有证书,<em>但是</em>为什么代码里获取<em>不到</em>值呢rnrn谢谢
为什么recvfrom接受不到数据啊?
我的代码如下:rnrn PacketMessage packMessage;rn int saLen = sizeof( packMessage.NasRemote ) ;rn bzero(&packMessage,sizeof(PacketMessage));rn while(true)rn rn int pnLen = <em>recvfrom</em>(socket,packMessage.data,MAX_RESPONSE_PACKET_LEN,0,(struct sockaddr *)&(packMessage.NasRemote),(socklen_t *)&saLen);rn if (pnLen < 0) rn rn printf ("Received Packets Failed , Now Exit The Program , Please Contact Your Administrator !\n ");rn rn printf("NasAddr:%s",inet_ntoa(packMessage.NasRemote.sin_addr));rn rnrnrn这是怎么回事呢???rn
数据库里老师读不到数据
if (this.IsValid)rn rn string pwd= this.txtPassword.Text.ToString();rn //Commons.DbTools DbTools = new Commons.DbTools();rn string Pwd = Commons.DbTools.Md5(pwd); //调用DbTool的Md5方法来对密码加密rn //pwd = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(pwd, "MD5"); //此种方法与上面的效果一样rn string sql = "select * from users where UserName='" + this.txtUserName.Text.ToString() + "' and Password='" + Pwd + "'";rn Common common = new Common();rn DataSet ds= common.GetDataSet(sql);rnrn if (ds.Tables[0].Rows.Count > 0)rn rn this.Response.Redirect("main.aspx");rn rn elsern rn DbTools.MsgBox("用户名或密码错误!");rn rn rnrn/////////////////////////////////////////////////////rn就是这段验证用户登录的代码,老是从<em>数据</em>库都<em>不到</em><em>数据</em>,所以登录时总是("用户名或密码错误!"不知道咋回事,急死了,rn配置文件没有写错,因为可以从<em>数据</em>库导出<em>数据</em>来。不知道什么原因
kafka的consumer读不到数据
rt,在同一台电脑上,produce一些消息到kafka里,可<em>看到</em>kafka收到了消息。但在用一个consumer demo读取消息时,却读不出。可以<em>看到</em>consumer的offset是0,但就是取不出消息。rndemo:[url=https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example][/url]rn求解决方法!
sniffer 能抓到包,为什么用recvfrom接收不到数据??
写了一个客户端程序,向服务器请求<em>数据</em>,用的是udp协议,socket编程。其中第一了两个套接字,sock1、sock2,其中sock1绑定1201端口负责向服务器发送请求命令;sock2绑定1202端
socket编程中recv每次都接收不到数据,求解
我的客户端和服务器端的代码如下,<em>问题</em>是我每次调试服务端的程序的时候recv都接收<em>不到</em><em>数据</em>,都返回的是-1,这是怎么回事啊,在send没有发<em>数据</em>的时候recv就先返回了,有没有知道的大神帮帮忙啊。 //
linux udp 客户端recvfrom,一直没有数据接收,谁能帮看看这代码哪里出了问题了????
void* StartDiscoveryThread(void *arg) { int so_broadcast=1; struct sockaddr_in toAddr; //客户端的网络地址。 struct sockaddr_in serverAddr; //服务器端的网络地址。 char inBuff[DD_BUFF_LEN]; int sockaddrLen = 0; in
程序为什么接收不到组播的消息?recvfrom一直不返回
#include #include #pragma comment( lib, "ws2_32.lib") int main() { WSADATA ws
receivefrom收不到数据,确实是有数据发过去了,求高人指点
//先是socket初始化 SOCKET udp_socket=-1; struct fd_set fds; void udp_init() { struct sockaddr_in client_
串口读不到数据
串口读<em>不到</em><em>数据</em>,为什么?请各位高人指点rnvoid CRS485CommDlg::OnReceive() rnrn OVERLAPPED m_osRead;rn memset(&m_osRead,0,sizeof(OVERLAPPED));rn m_osRead.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);rnrn COMSTAT ComStat;rn DWORD dwErrorFlags;rn rn char str[100];rn memset(str,''\0'',100);rn DWORD dwBytesRead=100;//读取的字节数rn BOOL bReadStat;rnrn ClearCommError(hCom,&dwErrorFlags,&ComStat);rn dwBytesRead = min(dwBytesRead, (DWORD)ComStat.cbInQue);rn bReadStat = ReadFile(hCom,str,dwBytesRead,&dwBytesRead,&m_osRead);rn if(!bReadStat)rn rn if(GetLastError()==ERROR_IO_PENDING)rn rn WaitForSingleObject(m_osRead.hEvent, 2000);rn rn rn PurgeComm(hCom, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);rn m_disp = str;rn UpdateData(FALSE);rnrn
Extjs4 Store读不到数据
在使用Extjs4的Store读取<em>数据</em>的时候,死活读<em>不到</em><em>数据</em>,请各位高手帮忙看看rn[code=JScript]rn rn[/code]rnrntest.json文件如下rnrows:[name:"symjie",age:23,name:"singleboy",age:45]rn使用的是php服务器,使用firebug测试了一下,可以得到<em>数据</em>,Store.data.items里面是有值的rn<em>但是</em>store.getCount()却得到是0,并且rn[code=JScript]store.each(function(record)rn alert(record.get("name"));rn);[/code]rn读不出<em>数据</em>。很是怪异!rn注意:我<em>已经</em>设置autoLoad:true了!
fread读不到文件数据
[code=c]#ifndef _EMSTRUCT_H_rn#define _EMSTRUCT_H_rnstruct clerkrnrn char num[20]; //工号rn char name[20]; //姓名rn int iYear; //发放年份rn int iMonth; //发放月份rn float Post_salary;//岗位工资rn float Class_salary; //课时工资rn float performance_salary;//绩效工资rn double total;//合计rn;rn#endif[/code]rn这个是头文件rn下面是录入<em>数据</em>:rn[code=c]#include "stdio.h"rn#include "EMstruct.h"rn#include "stdlib.h"rn#include "string.h"rnrn#define LEN 1024 //宏定义rnrn/************************************/rnvoid menu() ;rnvoid studychoose();rn/***********************************/rnrn//全局声明rn/************************************/rnint input_n;//需要录入的职工人数rnstruct clerk stu[LEN];rn/************************************/rnrn/*录入<em>数据</em>*/rnstruct clerk* screate()rnrnrnrn int cout_cr;//循环计次用rnrn printf("需要录入的职工人数:");rn scanf("%d",&input_n);rn for(cout_cr=0;cout_cr
CFile Read读不到数据
[code=c]rnvoid CMR_clientDlg::OnBnClickedFile()rnrn CFileDialog dlg(TRUE);rn CFile file;rn CString file_path = "";rn CString file_name = "";rn ULONGLONG file_size = 0;rn ULONGLONG endp = 0;rn ULONGLONG total = 0;rn UINT ret = 0;rn int length = 0;rn char info[1024] = 0;rn char date[64 * 1024] = 0;rn CString message = "";rn if(dlg.DoModal() != TRUE)rn rn return ;rn rn file_path = dlg.GetPathName();rn file_name = dlg.GetFileName();rn if(file.Open(file_path, CFile::modeRead) == FALSE)rn rn AfxMessageBox(_T("打开文件失败!"));rn return ;rn rn file_size = file.GetLength();rn sprintf(info, "%llu%s", file_size, file_name.GetBuffer());rn length = strlen(info);rn info[length] = 'F';rn info[length+1] = 'I';rn info[length+2] = 'L';rn info[length+3] = 'E';rn length = strlen(info);rn endp = file.SeekToEnd();rnrn while(file.GetPosition() SetWindowTextA(info);rn rnrn[/code]
串口通讯 突然读不到数据
情况如此:rn程序运行着,突然间(周期不定)上位机接收到的下位机回复信息为乱码,之后就收到空信息。此时重启上位机程序是无效的,必须重新启动上位机或者下位机。rnrn前提:rn上位机程序采用C#rn下位机为欧姆龙PLCrnrn提前解答:rn不存在关闭上位机程序时进程未退出导致再次启动程序时端口被占用rn无任何错误被捕捉。既突然间遇到该<em>问题</em>rn
recvfrom接收不到数据
在一个接收子线程里面接收下位机上送的<em>数据</em>,如下: while (ConnectFlag) { if (pDlg->RecvFlag) { int err = <em>recvfrom</em>(pDlg->socket
自己写的tracert程序只能接到最后一跳,抓包软件显示收到包,recvfrom()却接不到
-
进程收不到网络数据,但 tcpdump 能抓到包
情景:服务端进程绑定了 udp://0.0.0.0:10004 端口,客户单一直在往服务端发送<em>数据</em>,<em>但是</em> strace 发现,服务端进程一直都在轮询调用 epoll_wait, 也就是服务端程序一直都没有收到过时间通知。<em>但是</em>通过 tcpdump 抓 udp 10004 端口的<em>数据</em>却能抓到。 查看了一下 iptables 的配置: [html] view plain 
能用抓包程序抓到udp包,但是我的服务程序中recvfrom函数却什么都收不到,是什么缘故阿?
我的一个服务器程序,采用udp通信,用客户端访问,发过来的<em>数据</em>包用linux下的<em>抓包工具</em>能收到,<em>但是</em>到了程序里却没有反应,请问是什么缘故阿? 使用<em>recvfrom</em>函数,就一直被阻塞在那里了.
Android studio 解析网页数据,把网页Json格式的数据提取到Android studio上
工具类 HtmlService 具体实现如下: public class HtmlService { public static String getHtml(String path) throws Exception { URL url = new URL(path); HttpURLConnection conn = (HttpURLConne...
为什么xmlhttp读不到数据????
用Response.Write()rn输出:rnrn rnrn okrnrnrnrnrn用xmlhttp获取rnrnvar xmlDoc = xmlhttp.responseXML;//有object,非nullrn//var root = xmlDoc.documentElement; rnvar node = xmlDoc.getElementsByTagName('info');//有object,非nullrnrnvar str = node[0].firstChild.data;//这里却是null!!!!!!用node[0].firstChild.nodeValue;也不行。。。rn rnrnalert(str);
不到数据'800a0bcd' 错误
rnrn当查询<em>不到</em><em>数据</em>的时候,就会报 800a0bcd 错误,请问代码哪儿需要改正?
读串口ReadFile读不到数据
下位机用的是FT232芯片,所以我从FTDI官网找了代码直接下载来用的(http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/VC.htm)Example 5.rn代码中我只将波特率改成了8000000,跟我的下位机匹配,其他的代码没有改动,运行的时候运行到if(ReadFile(hCommPort, buf, w_data_len, &dwRead, NULL))这句代码就直接跳出了,不知道为什么?帮忙看看是什么原因?rn我把代码贴出来:rn[code=c]#include "stdafx.h"rn#include rn#include rn#include "ftd2xx.h"rnrnint main(int argc, char* argv[])rnrn FT_HANDLE fthandle;rn FT_STATUS res;rn LONG COMPORT;rnrn char COMx[5];rn int n;rnrn DCB dcb;rn HANDLE hCommPort;rn BOOL fSuccess; rnrnrn/***********************************************************************rn//Find the com port that has been assigned to your device.rn/***********************************************************************/rn rn res = FT_Open(0, &fthandle);rnrn if(res != FT_OK)rn rn printf("opening failed! with error %d\n", res);rn rn return 1;rn rnrn rn res = FT_GetComPortNumber(fthandle,&COMPORT);rnrn if(res != FT_OK)rn rn printf("get com port failed %d\n", res);rn rn return 1;rn rnrn if (COMPORT == -1)rnrn printf("no com port installed \n");rn rnrn elsern printf("com port number is %d\n", COMPORT);rnrn rnrnrn FT_Close(fthandle);rn rnrn/********************************************************/rn// Open the com port assigned to your devicern/********************************************************/ rnrn n = sprintf_s(COMx, "COM%d",COMPORT);rnrn hCommPort = CreateFile(rn COMx,rn GENERIC_READ | GENERIC_WRITE,rn 0,rn NULL,rn OPEN_EXISTING,rn FILE_ATTRIBUTE_NORMAL,rn NULLrn );rnrn if (hCommPort == INVALID_HANDLE_VALUE) rn rn rn printf("Help - failed to open\n");rn return(1);rnrn rn rnrn printf("Hello World!\n");rn rn/********************************************************/rn// Configure the UART interface parametersrn/********************************************************/rnrn fSuccess = GetCommState(hCommPort, &dcb);rnrnrn if (!fSuccess) rnrn rn printf("GetCommStateFailed \n", GetLastError());rn return (2);rnrn rnrn //set parameters.rnrn dcb.BaudRate = 8000000;rn dcb.ByteSize = 8;rn dcb.Parity = NOPARITY;rn dcb.StopBits = ONESTOPBIT;rn rn fSuccess = SetCommState(hCommPort, &dcb);rnrnrn if (!fSuccess) rnrn rn printf("SetCommStateFailed \n", GetLastError());rn return (3);rnrn rnrnrn printf("Port configured \n");rnrnrn/********************************************************/rn// Writing data to the USB to UART converterrn/********************************************************/rnrn DWORD dwwritten = 0, dwErr;rn char data_out[12] = "HELLO WORLD";rn DWORD w_data_len = 12;rn rnrnfSuccess = WriteFile(hCommPort, &data_out, w_data_len, &dwwritten, NULL);rn rn rn if (!fSuccess) rnrn rn dwErr = GetLastError();rn printf("Write Failed \n", GetLastError());rn return (4);rnrn rnrn rn printf("bytes written = %d\n", dwwritten);rn rn/********************************************************/rn//Reading data from the USB to UART converterrn/********************************************************/rn rn char buf[256];rn DWORD dwRead;rnrnrn memset(buf,0,256);rnrn if (ReadFile(hCommPort, buf, w_data_len, &dwRead, NULL))rn rn printf("data read = %s\n", buf);rn rnrnrn/********************************************************/rn//Closing the device at the end of the programrn/********************************************************/rnrnrn CloseHandle(hCommPort);rnrn getchar();rn return 0;rnrn[/code]rn运行结果如下:rncom port number is 3rnHello World!rnPort configuredrnbytes weittrn:12
数据抓包工具
简单易用,方便大家开发,本人用了8年的宝贝,送给大家
UDP接收端缓冲区和丢包问题
实习项目需要用Winsock内核模式驱动提供的sockets方法,,这个驱动负责连接和缓冲管理,对应用程序提供socket风格的编程接口。 大概的流程是发送端将一幅图像分成多个包进行发送,接收端接收包整合成图像并显示。 通过测试发现,发送端是相机,采用udp协议,发送的图像<em>数据</em>包有3428个,并且通过wireshark抓取到全部的包,<em>但是</em>接收端只能接收到3000个包左右,出现了丢包
windows Server UDP丢包的问题
-
客户端发送UDP包,在接收端用抓包工具可以抓到包,而且数据内容也对,但是recvfrom接收时程序停在recvfrom
大家好,我在进行网络编程时 客户端发送UDP包,在接收端用<em>抓包工具</em>可以抓到包,而且<em>数据</em>内容也对,<em>但是</em>用<em>recvfrom</em>接收时程序停在<em>recvfrom</em>处,一直执行不下去了,这是什么原因,求解? 我在一个
UDP编程中recvfrom函数的最后一个参数问题
<em>recvfrom</em>的最后一个参数返回往客户端机构中写的<em>数据</em>字节数,这里应该使用sizeof()来求出sockaddr_in的大小,然后赋值给最后一个参数,否则取到的客户端地址不对而且不能正确发送返回<em>数据</em>...
ICMP编程问题!!recvfrom接收不到数据!!!急急急急急急急急急急急急!!
#pragma comment(lib,"ws2_32.lib") #include #include #include #in
android SharedPreferences 的问题,读不到数据
[code=java] SharedPreferences share = getSharedPreferences("name", 0);rn Editor e = share.edit();rn rn //方法a,在第一句输出的时候读<em>不到</em><em>数据</em>。rn String a = "abc_cc";rn System.err.println(share.getString(a, "默认结果"));//此句似乎没有执行,没有任何输出,错误...rn //<em>但是</em>第二次执行的时候,会正常输出。rn e.putString(a, "修改的结果");rn e.commit();rn System.err.println(share.getString(a, "默认结果"));//输出:修改的结果,正常rn rn //方法b,一切正常rn System.err.println(share.getString("abc_cc", "默认结果"));//输出:默认结果,正常rn e.putString("abc_cc", "修改的结果");rn e.commit();rn System.err.println(share.getString("abc_cc", "默认结果"));//输出:修改的结果,正常rn rn //求解,为什么方法a不行?[/code]rnrnrn这是getString的源码rn[code=java] String getString(String key, String defValue);rn rn /**rn * Retrieve a set of String values from the preferences.rn * rn * Note that you must not modify the set instance returnedrn * by this call. The consistency of the stored data is not guaranteedrn * if you do, nor is your ability to modify the instance at all.rn *rn * @param key The name of the preference to retrieve.rn * @param defValues Values to return if this preference does not exist.rn * rn * @return Returns the preference values if they exist, or defValues.rn * Throws ClassCastException if there is a preference with this namern * that is not a Set.rn * rn * @throws ClassCastExceptionrn */[/code]
Modbus TCP经常出现读不到数据问题
服务器是正常的,但Modbus TCP经常出现读<em>不到</em><em>数据</em>的<em>问题</em>。rn麻烦大家看看这个类是不是有<em>问题</em>?rn另外哪位有稳定的Modbus TCP通讯类,提高一下,谢谢。rn谢谢。rnrnrn[code=java]package net.wimpi.modbus.facade;rnrnimport java.io.DataInputStream;rnimport java.io.DataOutputStream;rnimport java.io.IOException;rnimport java.io.InputStream;rnimport java.io.OutputStream;rnimport java.net.Socket;rnimport java.net.UnknownHostException;rnimport java.util.ArrayList;rnimport java.util.Date;rnimport java.util.List;rnrnpublic class ModbusConnect rn //instance attributesrn private Socket m_Socket;rn private int m_Timeout = ModbusTCPMaster.TIMEOUT;rn private boolean m_Connected;rn private DataInputStream m_Input = null; //input streamrn private DataOutputStream m_Output = null; //output streamrn private InputStream m_InputStream = null; //wrap into filter inputrn private OutputStream m_OutputStream = null; //wrap into filter outputrn rn rn /**rn * Constructs a TCPMasterConnection instancern * with a given destination address.rn *rn * @param adr the destination InetAddress.rn */rn public ModbusConnect() rn //constructorrnrn /**rn * Opens this TCPMasterConnection.rn *rn * @throws Exception if there is a network failure.rn */rn public void connect(String IP)rn throws Exception rn if(!m_Connected) rn tryrn m_Socket = new Socket(IP, 502);rn m_Socket.setSoTimeout(1000);rn new ModbusConnect().prepare();rn m_Connected = true;rn catch (Exception e) rn m_Connected = false;rn rn rn //connectrnrn /**rn * Closes this TCPMasterConnection.rn */rn public void close() rn if(m_Connected) rn try rn m_InputStream.close();rn m_OutputStream.close();rn m_Output.close();rn m_Input.close();rn m_Socket.close();rn catch (IOException ex) rn rn m_Connected = false;rn rn //closernrnrn /**rn * Returns the timeout for this TCPMasterConnection.rn *rn * @return the timeout as int.rn */rn public int getTimeout() rn return m_Timeout;rn //getTimeoutrnrn /**rn * Sets the timeout for this TCPMasterConnection.rn *rn * @param timeout the timeout as int.rn */rn public void setTimeout(int timeout) rn m_Timeout = timeout;rn try rn m_Socket.setSoTimeout(m_Timeout);rn catch (IOException ex) rn //handle?rn rn //setTimeoutrnrnrn /**rn * Tests if this TCPMasterConnection is connected.rn *rn * @return true if connected, false otherwise.rn */rn public boolean isConnected() rn return m_Connected;rn //isConnectedrnrn public Socket getM_Socket() rn return m_Socket;rn rnrn public void setM_Socket(Socket socket) rn m_Socket = socket;rn rn rn public void prepare() throws IOExceptionrn if(m_Socket != null)rn m_InputStream = m_Socket.getInputStream();rn m_OutputStream = m_Socket.getOutputStream();rn m_Output = new DataOutputStream(m_OutputStream); rn m_Input = new DataInputStream(m_InputStream );rn rn rn rn rn public List read(int unitvar,int startAddress,int length,int number) throws UnknownHostException, IOExceptionrn rn List list = new ArrayList();rn if(m_Output != null)rn synchronized (m_Output) rn rn int number1 = 0;rn int number2 = 0;rn if(number > 255 )rn number1 = number/256;rn number2 = number - (number1*256);rn elsern number2 = number;rn rn int startAddress1 = 0;rn int startAddress2 = 0;rn if(startAddress > 255 )rn startAddress1 = startAddress/256;rn startAddress2 = startAddress - (startAddress1*256);rn elsern startAddress2 = startAddress;rn rn byte[] b = new byte[12];rn b[0] = (byte)number1;rn b[1] = (byte)number2;rn rn b[2] = (byte)0;rn b[3] = (byte)0;rn rn b[4] = (byte)0;rn b[5] = (byte)6;rn rn b[6] = (byte)unitvar;rn b[7] = (byte)3;rn rn b[8] = (byte)startAddress1;rn b[9] = (byte)startAddress2;rn rn b[10] = (byte)0;rn b[11] = (byte)length;rnrn tryrn m_Output.write(b);rn catch (Exception e) rn // TODO: handle exceptionrn e.printStackTrace();rn close();rn rn m_Output.flush();rn int readBufferNumber = length*2 + 9;rn byte[] readBuffer = new byte[readBufferNumber]; rn rnrn int nIndex = 0; rn int nTotalLen = readBuffer.length; rn int nReadLen = 0; rnrn tryrn while (nIndex < nTotalLen) rn rn nReadLen = m_Input.read(readBuffer, nIndex, nTotalLen - nIndex); rnrn if (nReadLen > 0) rn rn nIndex = nIndex + nReadLen; rn rn else rn rn break; rn rn rnrn catch (Exception e) rn // TODO: handle exceptionrn Date date = new Date();rn java.sql.Date sqlDate = new java.sql.Date(date.getTime());rn java.sql.Time sqlTime = new java.sql.Time(date.getTime());rn String t = sqlDate.toString() + " " + sqlTime.toString();rnrn System.out.println("read error >>> Time:" + trn + " IP:" + m_Socket.getRemoteSocketAddress()rn + " unitvar:" + unitvarrn + " startAddress:" + startAddressrn + " length:" + lengthrn + " number:" + number);rn e.printStackTrace();rn close();rn rnrn rn for (int i = 9; i < readBuffer.length; i++) rn Integer var = Byte.valueOf(readBuffer[i]).intValue();rn if(var < 0) var = var + 256;rn list.add(var);rn rn rn rnrn rn rn return list;rn rnrnrn[/code]
XP系统下IPv6 recvfrom()接收不到数据问题!恳求指教!
我用的是原始套接字winsock=WSASocket(AF_INET6,SOCK_RAW,IPPROTO_ICMPV6,NULL, 0,0);//发送ICMPv6报文,rnrc=sendto(winsock,SendBuf, sizeof(SendBuf),0,res->ai_addr,res->ai_addrlen);rn<em>但是</em>用rnret = <em>recvfrom</em>(winsock,(char *)RecvBuf,1024,0,(SOCKADDR *)&remote6,&len6);接收<em>不到</em>返回的响应ICMPv6报文rn是不是我写错了?请各位大虾指点一二,在此谢过了!有兴趣可和我联系QQ:275374701潘元勇(真名)源码很简单VC++6.0下的rnrnrnwinsock=WSASocket(AF_INET6,SOCK_RAW,IPPROTO_ICMPV6,NULL, 0,0);//rn if(winsock==INVALID_SOCKET)rn rn AfxMessageBox("创建<em>本机</em>socket失败");rn return ;rn rn elsern rn AfxMessageBox("创建<em>本机</em>socket成功");rn rnrnrnrn //绑定本地监听端口bindrn/* if(bind (winsock,res->ai_addr,res->ai_addrlen)==SOCKET_ERROR) rn rn rn AfxMessageBox("bind失败");rn return;rn rn rn elsern rn AfxMessageBox("bind成功"); rn rn*/rn rc=getaddrinfo((LPCTSTR )m_ip6destaddr,"2000",&hints,&res);//解析目的地址rnfor(int i=1;i< 0));rnrn //WSAIoctl(winsock, SIO_RCVALL,&RecvBuf, sizeof(RecvBuf),&RecvBuf, sizeof(RecvBuf),&RecvBufR, NULL, NULL);rn //BOOL on = TRUE;rn //setsockopt(s_send, IPPROTO_IPV6, IPV6_PKTINFO, &on, sizeof(on));rn /* int on = 1;rnrn setsockopt(s_send, IPPROTO_IPV6, IPV6_PKTINFO, &on, sizeof(on));rn setsockopt(s_send, IPPROTO_IPV6, IPV6_HOPLIMIT, &on, sizeof(on));rn setsockopt(s_send, IPPROTO_IPV6, IPV6_HOPOPTS, &on, sizeof(on));rn setsockopt(s_send, IPPROTO_IPV6, IPV6_DSTOPTS, &on, sizeof(on));rn setsockopt(s_send, IPPROTO_IPV6, IPV6_RTHDR, &on, sizeof(on));rn */rn //ret = setsockopt(s_send, IPPROTO_ICMPV6, IP_HDRINCL, (char *)&on, sizeof(on));rn //填充ICMPV6头部rn static unsigned short seq_no = seq_no+1;rn icmpHdr.icmp_type =m_icmpv6type;rn icmpHdr.icmp_code = 0;rn icmpHdr.icmp_cksum = 0;rnrn#ifdef WIN32rn icmpHdr.icmp_id = (unsigned short)GetCurrentProcessId(); rn#elsern icmpHdr.icmp_id = (unsigned short)getpid(); rn#endifrn icmpHdr.icmp_seq = seq_no++;rnrn#ifdef WIN32rn icmpHdr.icmp_timestamp = (unsigned long)::GetTickCount();rn#elsern icmpHdr.icmp_timestamp = (unsigned long)time(NULL);rn#endifrnrn icmpHdr.icmp_cksum = CheckSum((unsigned short*)SendBuf, sizeof(IcmpHeader) + 0);rn udpHdr.src_portno = htons(1024);//);// htons(SRC_PORT);rn udpHdr.dst_portno = htons(1111);//m_p.in_destportrn udpHdr.udp_length = htons(sizeof(udpHdr)+512) ;rn udpHdr.udp_checksum = 0 ;rn //写入缓冲区SendBufrn ZeroMemory(SendBuf, 1024);rn ptr=SendBuf;rn memcpy(ptr, &icmpHdr, sizeof(icmpHdr));rn //ptr += sizeof(icmpHdr);rn// memcpy(ptr, &udpHdr, sizeof(udpHdr));rn //发送<em>数据</em>rn memset(&source6, 0, sizeof(struct sockaddr_in6));rn source6.sin6_family=AF_INET6;rn source6.sin6_port=0;rn source6.sin6_flowinfo=0;rnrnrn memcpy((char*)&source6.sin6_addr, &res->ai_addr,res->ai_addrlen);rn// rc=sendto(winsock,SendBuf, sizeof(SendBuf),0,(struct sockaddr *)&source6, sizeof(struct sockaddr_in6));rn rc=sendto(winsock,SendBuf, sizeof(SendBuf),0,res->ai_addr,res->ai_addrlen);rn if (rc== SOCKET_ERROR)rn rn AfxMessageBox("发送失败");rn closesocket(winsock);rn WSACleanup();rn return;rn rn elsern rn // AfxMessageBox("发送成功");rn Sleep(1000);rn rn //接收<em>数据</em>rn ZeroMemory(RecvBuf, 1024);rn// remote6.sin6_family=AF_INET6;rn// remote6.sin6_port=0;rnrn // ret = recv(winsock,RecvBuf,sizeof(RecvBuf),0);rn rn // ret = <em>recvfrom</em>(winsock,(char *)RecvBuf,1024,0,(SOCKADDR *)&remote6,&len6);rn ret = <em>recvfrom</em>(winsock,(char *)RecvBuf,1024,0,(SOCKADDR *)&res->ai_addr,&len6);rn int nError = WSAGetLastError(); rn message.Format("%d",nError);rn AfxMessageBox(message);rn if(ret);rn rn //10014rn //Sleep(1000);rnrn写的很烂,目的在于实验!拜托大家啦!
服务程序 recvfrom不到数据
int Error; rn SOCKET socket1; rn WORD VersionRequested; rn WSADATA WsaData; rn VersionRequested=MAKEWORD(2,2); rn Error=WSAStartup(VersionRequested,&WsaData); //启动WinSock2 rn char szError[256];rn DWORD dwError = GetLastError();rn FormatMessage(rn FORMAT_MESSAGE_FROM_SYSTEM,rn NULL,rn dwError,rn 0,rn szError,rn sizeof(szError),rn NULL);rn ::MessageBox(NULL,szError,"",0);rnrnrn struct sockaddr_in local; rn struct sockaddr_in from; rn int fromlen =sizeof(from); rn local.sin_family=AF_INET; rn local.sin_port=htons(8000); ///监听端口 rn local.sin_addr.s_addr=htonl(INADDR_ANY); ///<em>本机</em> rn rn socket1=socket(AF_INET,SOCK_DGRAM,0); rn rn bind(socket1,(struct sockaddr*)&local,sizeof local); rn dwError = GetLastError();rn FormatMessage(rn FORMAT_MESSAGE_FROM_SYSTEM,rn NULL,rn dwError,rn 0,rn szError,rn sizeof(szError),rn NULL);rn ::MessageBox(NULL,szError,"",0);rn while (1) rn rn char buffer[1024]= "\0 "; rn //printf( "waiting for message from others-------------\n "); rn int rr=<em>recvfrom</em>(socket1,buffer,sizeof buffer,0,NULL,NULL)!=SOCKET_ERROR; rn //MessageBox(NULL,"","",0);rn FILE *file1; rn file1=fopen( "c:\\Client.txt ", "a+ "); rn fwrite(buffer,sizeof(char)*1024,rr,file1); rn fclose(file1); rn rn Sleep(500); rn rn rn closesocket(socket1); rnrn在服务程序中到int rr=<em>recvfrom</em>(socket1,buffer,sizeof buffer,0,NULL,NULL)!=SOCKET_ERROR; rn就阻塞在那里,设置为非阻塞方式,返回为“无法立即完成一个非阻挡性套接字操作”,将这段代码放在一般程序中执行很好!rn计算机一直在接受<em>数据</em>。。rnrn这到底是怎么回事儿呢????rn
recvfrom接受客户端数据
C++socket网络编程大全实战http服务器(支持php)视频培训教程概况:本课程会同时演示在linux和windows中的编程,课程中的线程和正则表达式都使用c++提供库。本课程包含了socket网络编程常用的所有特性,包括tcp、udp协议的基础编程,广播包,超时连接,多路复用,高并发的epoll多路复用,多线程的服务端。课程讲解理论与实践相结合,实践以代码延时讲解为主。
新手告急,关于recvfrom接收不了数据
有一台仪器,把他IP设成172.18.1.146, 连接上LAN,他就不会不停的向172.18.1.255发广播,<em>抓包工具</em>是可以<em>看到</em><em>数据</em>的,但就是接收<em>不到</em>,同样的代码在电脑之间是可以的接收的.当然我向
关于recvfrom接收超时
<em>recvfrom</em>,这方法如果不特意设置,默认
急求助 recvfrom为什么一直阻塞在那里收不到数据
作snmp的agent,用udp接收<em>数据</em>,<em>数据</em>发出来,用tcpdump可以抓到,<em>但是</em>自己编 写的<em>recvfrom</em>代码却接收<em>不到</em><em>数据</em>包 ,一直的阻塞在那里。 代码如下: int main() { int
socket编程,已经收到了包,但recvfrom不到内容
详细的代码可见: http://hi.baidu.com/jtiannjupt/item/73ffe4f316ba08b330c19956 代码简述: 很简单的代码,socket编程,收发udp<em>数据</em>包
关于UDP向本机端口发送数据但是接收不到数据问题
用UDP<em>数据</em>报发送<em>数据</em>给<em>本机</em>,<em>数据</em>可以发出去,<em>但是</em>服务端(<em>本机</em>)却接收<em>不到</em>任何<em>数据</em>,刚接触网络,请指教! 服务器端: SOCKET  server_socket_udp; sockaddr_in server_address_udp,from_address_udp; char server_data[20]="你好"; server_socket_udp=socket(AF_INET,
C#的serialPort已经打开,但是接收不到数据??
[size=16px] 使用C#的serialPort控件串口通信,单独做个小的测试程序,用串口助手调试,接收发送都没有<em>问题</em>,<em>但是</em>把这个功能放到我要编写的大程序里就只可以打开串口,不能接收到<em>数据</em>,请问这个是怎么回事,怎么解决呢?[/size]
接收不到本机发送的组播数据
我有一个程序,分服务器和客户机两部分,服务器以组播的方式向某组播地址发送<em>数据</em>,客户端在这个组播地址上接收<em>数据</em>。我在单位调试时,单位是一个局域网环境,将服务器端程序和客户端程序在一台机子上运行,客户端可以接收到<em>数据</em>;可我在家里调试却不行,家里是小区宽带。各位大虾指点一下,家里的机子怎么无法接收<em>本机</em>发送的组播<em>数据</em>?(帮我解决<em>问题</em>的大虾才给分)
C# ado读取Excel 读不到数据
1.ADO连接字符串(正确,没有<em>问题</em>)  if (isAce12(ExcelFileName))             {                 strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFileName +                      ";Extended Prop
为什么缓冲区内有数据却读不到 ???????
[color=#FF0000]if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符rn rn rn variant_inp=m_ctrlComm.GetInput(); //读缓冲区[/color] safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量rn len=safearray_inp.GetOneDimSize(); //得到有效<em>数据</em>长度rn for(k=0;kSetWindowText(m_strEditRXData) ;rn rn rnrn上面的程序是串口通信的一部分代码,红色标注的if语句<em>已经</em>满足了,即表示缓冲区内有<em>数据</em>,rn可是我用GetInput函数读的<em>数据</em>却是空的,这是为什么 ?rnrn谁给解决了多加分,谢谢啦
ext2 分页的时候为什么读不到数据
rnrn rnrnrnrn**********上面为建立一个含有分页工具栏的girpanel 具体的<em>数据</em>从gril.html中读取rn下面为gril.html的代码rntotalProperty:100,root:[id:0,name:'name0',descn:'descn0',id:1,name:'name1',descn:'descn1',id:2,name:'name2',descn:'descn2',id:3,name:'name3',descn:'descn3',id:4,name:'name4',descn:'descn4',id:5,name:'name5',descn:'descn5',id:6,name:'name6',descn:'descn6',id:7,name:'name7',descn:'descn7',id:8,name:'name8',descn:'descn8',id:9,name:'name9',descn:'descn9'] rnrnrngrilpanel<em>已经</em>显示出来 分页的工具栏也<em>已经</em>显示出来了 <em>但是</em>就是没有<em>数据</em>为什么呢?? 先排除路径<em>问题</em>放的是同一个目录rnrn
请问为什么recvfrom不到数据?
我采用了异步模式接收<em>数据</em>,<em>但是</em><em>recvfrom</em>收到的<em>数据</em>长度为0? 套接字设置: sock=socket(AF_INET,SOCK_DGRAM,0); WSAAsyncSelect(sock,this
求助,recvfrom不到数据
不知道为什么一直卡在<em>recvfrom</em>里面,请各位高手指教,不胜感激!! server: #include #include #include <neti
recvfrom接收数据的时候如何判断已经接收完了??
1 服务器端发送的<em>数据</em>是不定长的,每个包的长度不超过1500字节 2 有的包可能<em>不到</em>1000字节,就直接发送过去,有的大于1500的就分包,所以每个包没有固定的长度的。 在客户端怎么知道一个包<em>已经</em>接受
主机设置了固定IP时,python的recvfrom()接收不到数据怎么办??
-
epoll中使用recvfrom 获取不到对端的ip和port
一、 epoll 之后的socket <em>recvfrom</em>的时候,需要设置          socklen_t socklen = sizeof(struct sockaddr);    //一定要初始化为sizeof,如果为0 则出错 m_data_len = <em>recvfrom</em>(m_fd, m_data, sizeof(m_data), 0, (struct sockaddr*)&amp;amp;m_...
Kafka 远程消费者读不到数据
<em>问题</em>描述 &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;服务器上使用脚本测试 producer &amp;amp;amp;amp; consumer 可生产 &amp;amp;amp;amp; 消费信息,但在使用 Java 代码远程作为消费者时,代码却卡在 comsumer.poll(long timeout) 不往下进行。 解决方式 &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&a
oracle中blob字段读不到数据
[code=Delphi(Pascal)]rnrn Close;rn SQL.Text := 'select tid,tdata from device_param where tid=' + IntToStr(vid) ;rn Open;rnrn First;rn if not Eof thenrn beginrn (FieldByName('tdata') as TBlobField).SaveToStream(ms);rn ms.Position :=0;rn ms.read(RecBuf[0],129);rnrn[/code]rn在oracle中能查询到blob字段的<em>数据</em>长度129,但无法读取到<em>数据</em>,ms的大小为0
读取excel时,第一行数据不到
代码如下,第一行读<em>不到</em>,输出的rows.count总是少了1,后面所有行<em>数据</em>都能读到。。rn string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ofd.FileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";rn OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [Sheet1$]", strConn);rn DataSet ds = new DataSet();rn adapter.Fill(ds, "sheet1");rn DataTable dt=ds.Tables[0];rn System.Console.WriteLine("rows count is "+dt.Rows.Count);
grid 读不到数据表中数据
我在grid中插入的<em>数据</em>,它都可以显示出来,<em>数据</em>库中也有,可是我直接插入<em>数据</em>库的记录,它就显示不出来,请问这是为什么?
串口通信 总是读不到数据呢?
关键的代码贴在这里 高手帮我看下啊!rn下面是个异步串口:rn[code=C/C++]DWORD WINAPI CThreadCom::ComThread(LPVOID lPara)rnrn CThreadCom * pCom = (CThreadCom * )lPara;rnrn if (!SetCommMask(pCom->m_hCom, EV_RXCHAR | EV_ERR))rn rn return 0;rn rnrn COMSTAT nStat;rn DWORD dwErr;rnrn for (DWORD dwLen, dwMask = 0; pCom->m_bRunFlag && pCom->IsOpen(); dwMask = 0)rn rn if (!WaitCommEvent(pCom->m_hCom, &dwMask, &pCom->m_oWait))rn rn if (GetLastError() == ERROR_IO_PENDING)rn rn GetOverlappedResult(pCom->m_hCom, &pCom->m_oWait, &dwLen, TRUE);rn rn rn rnrn if (dwMask & EV_ERR)rn ClearCommError(pCom->m_hCom, &dwErr, &nStat); [color=#0000FF]//ClearCommError 到底是干什么用的?[/color]rn rn if (dwMask & EV_RXCHAR)rn rn if(!ClearCommError(pCom->m_hCom, &dwErr, &nStat))rn MessageBox("ClearCommError 失败");rn if (nStat.cbInQue > pCom->m_lNotifyNum)rn rn pCom->OnReceive(); //在这个函数中::PostMessage(m_hwndNotify, ON_COM_RECEIVE, WPARAM(m_nPort), LPARAM(0));rn rn rn rn rn return 0;rnrnrn读COMrnint Read(char * chBuf, int nSize)rnrn if (!IsOpen())rn return 0;rn rn if (chBuf == NULL)rn return 0;rnrn chBuf[0] = '\0';rnrn COMSTAT nStat;rn DWORD dwError;rnrn [color=#993300]if (ClearCommError(m_hCom, &dwError, &nStat)) rn rn PurgeComm(m_hCom, PURGE_RXCLEAR | PURGE_RXABORT); //老是执行到这里了 不明白上面那个函数到底是做什么用的[/color]rn return 0;rn rnrn unsigned long lLen = 0;rnrn nSize = min(nSize - 1, (int)nStat.cbInQue);rn if (!ReadFile(m_hCom, chBuf, nSize, &lLen, NULL))rn lLen = 0;rnrn chBuf[lLen] = '\0';rnrn return lLen;rnrn[/code]rnrn
UDP中用recvfrom()接收数据的一些问题
第一个<em>问题</em>, 发送方我用sendto发了一个300字节的<em>数据</em>包,接收方用<em>recvfrom</em>(//我这里的<em>recvfrom</em>用了一个线程)接收200字节的<em>数据</em>包。<em>问题</em>是每次发超过200字节的时候,recvf
recvfrom接受不到数据
在服务端发送<em>数据</em>给客户端,发送代码如下: sockaddr_in remote; remote.sin_addr.S_un.S_addr = htonl((*ServerIterator)->ip);
网络抓包工具Wireshark如何抓取本机
笔者在很久之前用过其他的网络<em>抓包工具</em>,最近想着使用鼎鼎大名的网络<em>抓包工具</em>Wireshark,<em>但是</em>一开始始终无法抓取到<em>本机</em>网络包,telnet localhost 8080这种都没法抓取,查过资料之后才知道,  windows系统没有提供本地回环网络的接口,用wireshark监控网络的话只能<em>看到</em>经过网卡的流量,看<em>不到</em>访问localhost的流量,因为wireshark在windows系统上默认使用
使用抓包工具Charles实现真机调试本地站点
Charles简介 是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有<em>数据</em>。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。 工作原理 我们在PC端开发时,我们可以通过修改host...
捕获本地网络包Rawcap+Wireshark
通常wireshark不能直接抓取本地的回环<em>数据</em>包,当然经过一些配置可以到达这个目的。本文通过工具软件RawCap相对方便地抓取本地网络包,然后使用Wireshark进行筛选并观察<em>数据</em>报具体内容。 1.参考文献及RawCap下载地址: 点击打开链接 2.使用步骤: 2.1)打开RawCap:输入 RawCap.exe+IP地址+抓包<em>数据</em>存储的filename.pcap
VB winsock 读不到PLC数据
用TCP&UDP测试工具能够读到值 500rn[img=https://img-bbs.csdn.net/upload/201904/20/1555737658_571836.png][/img]rnrnrnVB调用winsock读到的为0,应是没有读到rn[img=https://img-bbs.csdn.net/upload/201904/20/1555737880_13321.png][/img]rnrn连接rn[img=https://img-bbs.csdn.net/upload/201904/20/1555737956_879377.png][/img]rnrn读取rn[img=https://img-bbs.csdn.net/upload/201904/20/1555738017_205801.png][/img]rnrn<em>数据</em>处理rnrnrn
EXTJS AJAX 为何读不到数据
在研究 EXTJS MVC例子。rn代码见后边,如果用屏蔽的就能正常读到<em>数据</em>并显示,而用代理就读<em>不到</em><em>数据</em>,rn用Chrome调试,显示的是 rnrnOPTIONS file:///D:/xampp/htdocs/TestMVC/data/users.json?_dc=1381904422657&page=1&start=0&limit=25 Origin null is not allowed by Access-Control-Allow-Origin. ext-all.js:21rnExt.cmd.derive.request ext-all.js:21rnExt.cmd.derive.doRequest ext-all.js:21rnExt.cmd.derive.read ext-all.js:21rnExt.cmd.derive.load ext-all.js:21rnb.implement.callParent ext-all.js:21rnExt.cmd.derive.load ext-all.js:21rn(anonymous function) ext-all.js:21rnXMLHttpRequest cannot load file:///D:/xampp/htdocs/TestMVC/data/users.json?_dc=1381904422657&page=1&start=0&limit=25. Origin null is not allowed by Access-Control-Allow-Origin. index.html:1rnrnrn按照网上搜索的方法,在Chrome 快捷方式增加参数 –disable-web-security ,但结果一样,rn用FirFox 也读<em>不到</em><em>数据</em>,很奇怪,不知道各位有遇到否?rnrn[code=javascript]Ext.define('AM.store.Users', rn extend: 'Ext.data.Store',rn model: 'AM.model.User', rn rn autoLoad: true,rn /* 直接定义<em>数据</em>就正常,而用下边的proxy就读<em>不到</em><em>数据</em>,当然那个文件是存在的 rn data: [rn name: 'Ed', email: 'ed@sencha.com',rn name: 'Tommy', email: 'tommy@sencha.com'rn ]rn*/rnrn proxy: rn type: 'ajax',rn api: rn read: 'data/users.json',rn update: 'data/updateUsers.json'rn ,rn reader: rn type: 'json',rn root: 'users',rn successProperty: 'success'rn rn rnrn);[/code]
write成功,read阻塞,读不到数据
帮看下rn执行如下:rn[weihu@nagios http_get]$ ./t1_2rnGET /ccinterface/Service.asmx/GetRealTimeInfo?queueid= HTTP/1.1rnHost: 10.127.2.123rnrnclient write 85 bytes .rnselect ok.rn这里停了rnrn[code=c]rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rnrn#define LEN 1024rn#define HIS_PORT 80rn#define HIS_IPADDR "10.127.2.123"rnrnint get_url(char http_get_url[4096]) rn int ret,i;rn char readbuf[LEN];rnrn int mark=0;rn char *p,*str;rn fd_set rfds;rn struct timeval tv;rnrn int sd;rn struct sockaddr_in his_end;rnrn sd=socket(AF_INET,SOCK_STREAM,0);rn if(sd==-1) rn fprintf(stderr,"socket error.\n");rn exit(-1);rn rnrn his_end.sin_family=AF_INET;rn his_end.sin_port=htons(HIS_PORT);rn his_end.sin_addr.s_addr=inet_addr(HIS_IPADDR);rnrn ret=connect(sd,(struct sockaddr *)&his_end,sizeof(his_end));rn if(ret==-1) rn perror("connect()");rn exit(-1);rn rnrn ret=write(sd,http_get_url,strlen(http_get_url));rn if(ret0) rn memset(readbuf,0,4096);rnrn ret=read(sd,readbuf,4095);rn if(ret==0)rn close(sd);rn return -1;rn rnrn printf("%s\n",readbuf);rn printf("--------------------\n");rnrn break;rn rn rnrn ret=close(sd);rnrn return 0;rnrnrnint main(int argc, char *argv[]) rn int ret,i;rn char http_get_url[4096];rnrn //prepare datern memset(http_get_url,0,4096);rn strcat(http_get_url,"GET /ccinterface/Service.asmx/GetRealTimeInfo?queueid= HTTP/1.1\n");rn strcat(http_get_url,"Host: 10.127.2.123\n\r\n");rnrn printf("%s",http_get_url);rnrn get_url(http_get_url);rnrn return 0;rnrn[/code]
好奇怪~~~POST读不到数据
原版的html代码是这样子滴,我也不知道是哪里出错了。。。反正就是在insert_user.php里用$_POST["user_name"]读<em>不到</em><em>数据</em>。。。它会给我提示用户名为空。。。rnrnrnrnrn rn rn rn 注册rn rnrn rnrn rn rn rn rn 用户名:*rn 请输入密码:*rn 请输入8-12位由数字、字母组成的密码rn 请再次输入密码:*rn 邮 箱:rn 性 别:rn rn 选择性别rn 男rn 女rn rn rn 电话号码:rn 我认真阅读并接受协议。rn *为必填项目rn rn rn rn rn rnrn rnrnrnrn
content provider为什么读不到电话薄数据
android系统自带了一些content provider,比如电话薄,外部的程序可以读取到电话薄的内容,我写了一些简单的程序,在这个程序中访问电话薄,可以读出电话薄里面的内容。<em>但是</em>当我把这个程序安装到手机上的时候(我的手机是华为U8500),却读取<em>不到</em>手机上的电话薄,这个原因何在?请知道的给解答下...
本机抓包软件
<em>本机</em>抓包软件<em>本机</em>抓包软件<em>本机</em>抓包软件<em>本机</em>抓包软件<em>本机</em>抓包软件<em>本机</em>抓包软件<em>本机</em>抓包软件<em>本机</em>抓包软件
请问tcpdump, ethereal等抓包工具是否可以抓本机之间通信的包???
请问tcpdump, ethereal等<em>抓包工具</em>是否可以抓<em>本机</em>之间通信的包??? 比如: 我在<em>本机</em>(127.0.0.1 的7788端口建立一个tcp服务器), 然后用<em>本机</em> 的客户端程序访问, 直接使用
15个免费好用的抓包工具
1. Hping Hping是最受欢迎和免费的<em>抓包工具</em>之一。它允许你修改和发送自定义的ICMP,UDP,TCP和原始IP<em>数据</em>包。此工具由网络管理员用于防火墙和网络的安全审计和测试。 HPing可用于各种平台,包括Windows,MacOs X,Linux,FreeBSD,NetBSD,OpenBSD和Solaris。 下载Hping: http://www.hping.org/ 2. Os...
Windows抓包工具 -- Charles
下载、安装(Windows 电脑 64位) 链接: https://pan.baidu.com/s/1c2VujTm 密码: ai98 电脑端使用: 步骤一:将其设置成系统的代理服务器。选择菜单中的 “Proxy” -> “Windows Proxy” 步骤二: Chrome 和 Firefox 需要设置成使用系统的代理服务器,或者直接将代理服务器设置成127.0.0.
WireShark如何抓取本地localhost的包
今天将自己的电脑既作为客户端又作为服务端进行一个程序的测试,想着用WireShark来抓包分析一下<em>问题</em>,但由于WireShark只能抓取经过电脑网卡的包,由于我是使用localhost或者127.0.0.1进行测试的,流量是不经过电脑网卡的,所以WireShark无法抓包,一番查找之下找到了解决方法。
API实现串口通讯,读不到正确的数据
发送“123”的话就会显示一长串的烫rn[img=https://img-bbs.csdn.net/upload/201607/23/1469288894_878428.png][/img]rn看样子输入缓冲区也没清空rn如果改成只接收单个字符的程序rn也还是收到乱码rn不管发送'1'还是'2'都显示‘Ì’rn求指教啊~~rnrnstruct ParameterrnrnCOMConfig* c;rnCBLDDlg* dlg;rn;rnrn完整的代码有点长,删减了一些不相关的rn这是开启的线程里的一部分内容:rnUINT ThreadFunc(LPVOID lpParam)rnrnrn Event = WaitForMultipleObjects(3,comConfig->m_hEventArray,FALSE,INFINITE);rn switch(Event)rn rn case 0:rn rn //关闭串口操作rn rn case 1:rn rn GetCommMask(comConfig->m_hComm,&CommEvent);//获取当前通信事件rn if(CommEvent & EV_RXCHAR) rn dlg->ReceiveChar(comConfig,100);rnrn AfxMessageBox(_T("读事件")); rn break;rn rn case 2:rn rn //写<em>数据</em>操作rn rn rnrn rnreturn 0;rnrnrn然后主要是下面读<em>数据</em>的函数:rnvoid CBLDDlg::ReceiveChar(LPVOID lpParam, DWORD dwLength)rnrnBOOL bRead = TRUE;rnBOOL bResult = TRUE;rnDWORD dwError = 0;rnCOMConfig* comConfig = (COMConfig*)lpParam; rnDWORD length = 0;rnCString str;rnchar RXBuff[100];rnInitializeCriticalSection(&cs);rnrnfor (;;)rnrn EnterCriticalSection(&cs);rnrn bResult = ClearCommError(comConfig->m_hComm, &dwError, &(comConfig->comstat));rnrn LeaveCriticalSection(&cs);rnrn if (comConfig->comstat.cbInQue == 0)rn rn break;rn rnrn EnterCriticalSection(&cs);rnrn length=min(dwLength, comConfig->comstat.cbInQue);rnrn if (bRead)rn rn //读<em>数据</em>rn bResult = ReadFile(comConfig->m_hComm, // Handle to COMM portrn RXBuff, // RX Buffer Pointerrn length, // Read one bytern &length, // Stores number of bytes readrn &(comConfig->m_ov)); // pointer to the m_ov structurernrn CString str(RXBuff);rn m_strEditReceiveMsg = str;rnrn GetDlgItem(IDC_receive)->SetWindowText(str);//显示在控件中rnrn if (!bResult)rn rn switch (dwError = GetLastError())rn rn case ERROR_IO_PENDING:rn rn bRead = FALSE;rn break;rn rn default:rn rn break;rn rn rn rn elsern rn bRead = TRUE;rn rn // close if (bRead)rn if (!bRead)rn rn bRead = TRUE;rn bResult = GetOverlappedResult(comConfig->m_hComm, // Handle to COMM portrn &(comConfig->m_ov), // Overlapped structurern &length, // Stores number of bytes readrn TRUE); // Wait flagrn if(!bResult)rn rn AfxMessageBox(_T("GetOverlappedResults()in ReadFile()"));rn rnrn SetCommMask(comConfig->m_ov.hEvent,EV_RXCHAR);//重置为有信号rnrn LeaveCriticalSection(&cs);rn rnrnrnrn求各位帮忙!谢谢~~
proteus,仿真8086,读不到数据。。。求助
端口地址定义:rnIOY2 EQU 9020h; 8255rnM8255_A EQU IOY2+00H*4 rnM8255_B EQU IOY2+01H*4 rnM8255_C EQU IOY2+02H*4 rnM8255_MODE EQU IOY2+03H*4 rnrn mov dx,M8255_MODE rn mov al,082h ;a输出 B输入 rn out dx,al rnrnmov dx,M8255_B rnin al, dx ;读b口<em>数据</em> rn怎么接 al里面的读<em>不到</em>B口的<em>数据</em> (地址应该没算错、、A口可以输出<em>数据</em>) 求解释啊各位[img=http://hiphotos.baidu.com/catonlion/pic/item/27f96ff1d72a60595d6a79512834349b023bba06.jpg][/img]rn
为什么我的串口通信读不到发来的数据
代码如下:rn BYTE* Com1Device::reDataBuffer()rnrn char * Buffer=NULL;rn Buffer=new char[1024];rn ZeroMemory(Buffer,sizeof(char)*(1024));rn m_Com2->Read(Buffer,sizeof(char)*1024);rn return (BYTE*)Buffer;rnrn这是一个读取串口<em>数据</em>的函数 其中Read();函数是没<em>问题</em>的我测试过。是不是我这个函数写的有<em>问题</em>啊?各位高手帮帮忙,小弟在次先谢了。
相当奇怪的一件事,DATAREADER读不到数据
很简单的一段代码rnSqlConnection con = new SqlConnection(DataAccess.connectString);rncon.Open();rnSqlCommand com = con.CreateCommand();rncom.CommandText = sql;rnSqlDataReader dr = com.ExecuteReader();rnrn其中sql是sql语句正常传给CommandText了rn调试的时候在立即命令窗口内显示con和com都是正常的rn但dr显示如下:rndrrnSystem.Data.SqlClient.SqlDataReaderrn System.MarshalByRefObject: System.Data.SqlClient.SqlDataReaderrn _behavior: Defaultrn _browseModeInfoConsumed: falsern _comBuf: rn _command: System.Data.SqlClient.SqlCommandrn _currCol: -1rn _dataReady: falsern _defaultLCID: 2052rn _fieldNameLookup: rn _haltRead: falsern _hasRows: falsern _indexMap: Length=3rn _isClosed: falsern _metaData: rn _metaDataConsumed: falsern _parser: rn _peekIsNull: falsern _peekLength: -1rn _recordsAffected: -1rn _rowException: rn _schemaTable: rn _seqBytesLeft: 0rn _seqBytesRead: 0rn _setOptions: nullrn _sqlBuf: rn _tableNames: rn _tableNamesShilohSP1: rn _visibleColumns: 3rn Depth: 0rn FieldCount: 0rn HasMoreResults: falsern HasMoreRows: falsern HasRows: falsern IsClosed: falsern Item: rn Item: rn MetaData: rn RecordsAffected: -1rn TableNames: rn TableNamesShilohSP1: rn按道理应该也是读到了<em>数据</em>的 rn<em>但是</em>用dr.read显示为没有读到任何有效的<em>数据</em>rn请问这是怎么一回事,怪死了,调了好多天了rn请大侠相救
我的OleDbDataReader.Read()方法读不到数据
myConn.Open();rn OleDbCommand cmd = myConn.CreateCommand();rn cmd.CommandText = strCom;rn OleDbDataReader reader;rn reader = cmd.ExecuteReader();rn StringBuilder sb = new StringBuilder();rn while (reader.Read())rn rn ...rn rn这就是部分代码rn连接<em>数据</em>库成功,<em>但是</em>始终进不去while循环
Fiddler2汉化版使用说明
fiddler是一款免费且功能强大的<em>数据</em>包抓取软件,它能够快速的抓取HTTP会话以及支持监视、还可设置断点等诸多实用功能,非常适合计算机工作者们分析<em>数据</em>使用。本文就为大家详细介绍一下fiddler的功能的使用方法。 一、软件简介:    一款免费且功能强大的<em>数据</em>包抓取软件。它通过代理的方式获取程序http通讯的<em>数据</em>,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的
常用抓包工具/技术的总结
1.常用工具 抓<em>本机</em> RawCap linux tcpdump 神器 Wireshark(结合Npcap也可抓<em>本机</em>)   2.专项 http/https Fiddler   3.专业工具 Burp Suite https://portswigger.net/burp/ cain http://www.oxid.it/cain.html   参考 Fiddler 抓包工...
wireshare抓包工具如何设置实现本地进程间抓包?
希望有图示或者具体步骤,我从网上找的一些还是不会设置。
抓包工具Charles基本用法
我们在进行B/S架构的Web项目开发时,在前端页面与后台交互的调试的时候,通常使用在JSP中加入“debugger;”断点,然后使用浏览器的F12开发者工具来查看可能出错的地方的<em>数据</em>。或者使用HttpWatch来抓包分析。 在开发移动端项目没有网页的情况下,就不能通过这种方式抓取<em>数据</em>进行分析了。这时可以使用Charles满足以上要求。Charles是一款Http代理服务器和Http监视器,当移动
Wireshark抓取本地Tcp包(任何数据包)
没有任何一个程序员在做项目的时候不会遇到网络编程的<em>问题</em>,要解决这些<em>问题</em>除了对各种网络协议深入了解之外,还需要掌握各种网络分析工具的用法,不用多说wireshark绝对是这方面的翘楚,可惜的是,wireshark不能对本地接口(loopback,或者127.0.0.1)进行直接抓包。wireshark的工作原理这里面的原理其实很简单,wireshark可以通过操作系统来访问所有的网络adapter,通
c#实现串口通信读不到数据
using JustinIO;rnJustinIO.CommPort ss_port = new JustinIO.CommPort;rn ss_port.PortNum = 1;//端口号rnss_port.BaudRate = 19200; //串口通信波特率rnss_port.ByteSize = 8; //<em>数据</em>位rnss_port.Parity = 0; //奇偶校验rnss_port.StopBits = 1;//停止位rnss_port.ReadTimeout = 1000; //读超时rnbyte[] WriteBytes=Encoding.ASCII.GetBytes("AT+CGMI\r");rn rntryrnrnif (ss_port.Opened)rnrn  ss_port.Close();rn   ss_port.Open(); //打开串口rn ss_port.Write(WriteBytes); rn string response = Encoding.ASCII.GetString(ss_port.Read(128));rn rn  elsern  rn  ss_port.Open(); //打开串口rn ss_port.Write(WriteBytes); rn string response1 = Encoding.ASCII.GetString(ss_port.Read(128));rn Console.WriteLine(response1);rn ...rn调试没有<em>问题</em>,为何没有读出<em>数据</em>?rnrn其中JustinIO是读写公共类,没有<em>问题</em>。
雷达接工控机读不到数据
1.4线雷达采用TCP方式,将<em>数据</em>发送出来,16线雷达采用抓包方式将<em>数据</em>发送出来。(正常情况下时这样的。) 2.对于工控机一个网口对应一个网卡,所以对网卡配置好静态ip后,不能乱插网口,否者会导致读<em>不到</em>雷达<em>数据</em>。 3.另外读16线雷达时,可以直接接笔记本读取<em>数据</em>,在浏览器直接输入192.168.1.201,在此之后,可以设置雷达的ip,然后读取相应ip的<em>数据</em>。 4.多颗雷达接路由器上时,可以...
串口读不到数据的奇怪现象
本人曾做过与串口的通信工程,对串口也算有一定的了解,可是这次遇到的<em>问题</em>比较特殊。rn现象如下:rn1、与测量仪器通信时,我的程序能传<em>数据</em>到仪器,但仪器返回的<em>数据</em>就是收<em>不到</em>;rn[color=#FF6600]2、奇怪的地方是:当发送指令后没接收到<em>数据</em>,在本程序中关闭串口后,用串口调试精灵打开该串口时,<em>数据</em>接收到了。[/color]rn3、用ser232Mon监视串口,发现本程序把<em>数据</em>送到缓冲区后,接收缓冲区无字符;rn4、用串口调试精灵发送相同指令,ser232Mon立即接收到返回<em>数据</em>;rnrn思考和试解决过程:rn1、既然通信仪器接发<em>数据</em>正常,排除线路、协议、本程序发送指令的<em>问题</em>;检查MSComm控件设置无<em>问题</em>;rn2、我开始以为是本程序发送指令后,仪器有硬件握手协议,致使仪器想要传送给PC,却认为PC未准备好,从而未传送,可是再想也不对:为什么串口精灵可以收到呢?rn3、除了串口调试精灵外,我下载了一些其它的串口调试工具,有的可以收到<em>数据</em>,有的也和我的程序一样收<em>不到</em><em>数据</em>;rnrn不知道哪位仁兄有好的思路或有过类似的经历,希望得到您的指导,谢谢!
C#读写串口数据,读不到
如题,代码如下:rn[code=C#]using System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Text;rnusing System.Windows.Forms;rnusing System.IO.Ports;rnrnnamespace WindowsApplication1rnrn public partial class Form1 : Formrn rn public Form1()rn rn InitializeComponent();rn rnrn rn SerialPort port1=new SerialPort();rnrn rn //接收<em>数据</em>rn private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)rn rnrn // 读取缓冲区的<em>数据</em>rn string data = port1.ReadExisting();rn textBox1.Text = data;rn rnrnrn //初始化SerialPort对象方法.PortName为COM口名称,例如"COM1","COM2"等,注意是string类型rn public void InitCOM(string PortName)rn rn port1 = new SerialPort(PortName);rn port1.BaudRate = 9600;//波特率rn port1.Parity = Parity.None;//无奇偶校验位rn port1.StopBits = StopBits.One;//两个停止位rn port1.DataBits = 8;rn rn //DataReceived事件委托方法rn private void port1_DataReceived(object sender, SerialDataReceivedEventArgs e)rn rn // 读取缓冲区的<em>数据</em>rn string data = port1.ReadExisting();rn textBox1.Text = data;rn rnrn //打开串口的方法rn public void OpenPort()rn rn tryrn rn port1.Open();rn rn catchrn rnrn rn if (port1.IsOpen)rn rn Console.WriteLine("the port is opened");rn rn elsern rnrn Console.WriteLine("failure to open the port");rn rnrn rnrn //关闭串口rn public void ClosePort()rn rn port1.Close();rn if (!port1.IsOpen)rn rn Console.WriteLine("the port is already closed");rn rnrn rnrn //向串口发送<em>数据</em>rn public void SendCommand(string CommandString)rn rn port1.Write(CommandString);rn //Console.WriteLine(port1.ReadExisting());rn textBox1.Text = port1.ReadExisting();rn rnrnrn private void button1_Click(object sender, EventArgs e)rn rn if (!port1.IsOpen)rn rn InitCOM("COM1");rn OpenPort();rn rn SendCommand("abcdefg");rn rnrn private void button2_Click(object sender, EventArgs e)rn rn port1.Close();rn rnrn private void Form1_Load(object sender, EventArgs e)rn rn port1.DataReceived += new SerialDataReceivedEventHandler(port1_DataReceived);// new SerialDataReceivedEventHandler(port_DataReceived);rnrn rn rn[/code]
为什么GetPrivateProfileString读不到数据
BOOL WINAPI DllMain(HMODULE hModule,DWORD u_reason,LPVOID Temp)rnrn if (u_reason==DLL_PROCESS_ATTACH)rn rn char ip[16];rn DWORD num=0;rn num=GetPrivateProfileString("Mokey","Ming","", ip,sizeof(ip), "C:\xxx.ini");rn //这里ip一直读<em>不到</em><em>数据</em>,请问怎么回事?在dll中不能读吗?rn rn return TRUE;rnrnrnrn我试了,相同的代码,在exe中完全可以读到<em>数据</em>的,请大神指点啊!
exchange server 2010 administration pocket consultant part1下载
学习 exchange server 2010 的官方资料,非常棒 相关下载链接:[url=//download.csdn.net/download/sungm1984/2296464?utm_source=bbsseo]//download.csdn.net/download/sungm1984/2296464?utm_source=bbsseo[/url]
数值分析试验报告下载
数值分析相关算法的演示,自适应辛普森积分、分析LU分解法解方程组算法 相关下载链接:[url=//download.csdn.net/download/miner163/3943863?utm_source=bbsseo]//download.csdn.net/download/miner163/3943863?utm_source=bbsseo[/url]
蓝牙耳机系统及其实现下载
蓝牙耳机系统及其实现 相关下载链接:[url=//download.csdn.net/download/xiaoyue985/4082642?utm_source=bbsseo]//download.csdn.net/download/xiaoyue985/4082642?utm_source=bbsseo[/url]
我们是很有底线的