WndProc接收不到消息 [问题点数:20分,结帖人running_crazy]

Bbs4
本版专家分:1230
结帖率 95.74%
Bbs9
本版专家分:88656
Blank
金牌 2015年2月 总版技术专家分月排行榜第一
2015年1月 总版技术专家分月排行榜第一
Blank
银牌 2015年3月 总版技术专家分月排行榜第二
2014年12月 总版技术专家分月排行榜第二
2014年9月 总版技术专家分月排行榜第二
Blank
红花 2015年3月 .NET技术大版内专家分月排行榜第一
2015年2月 .NET技术大版内专家分月排行榜第一
2015年1月 .NET技术大版内专家分月排行榜第一
2014年12月 .NET技术大版内专家分月排行榜第一
2014年11月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2015年7月 .NET技术大版内专家分月排行榜第二
2015年6月 .NET技术大版内专家分月排行榜第二
2015年5月 .NET技术大版内专家分月排行榜第二
2014年10月 .NET技术大版内专家分月排行榜第二
2014年9月 .NET技术大版内专家分月排行榜第二
2014年8月 .NET技术大版内专家分月排行榜第二
Bbs4
本版专家分:1230
Bbs9
本版专家分:88656
Blank
金牌 2015年2月 总版技术专家分月排行榜第一
2015年1月 总版技术专家分月排行榜第一
Blank
银牌 2015年3月 总版技术专家分月排行榜第二
2014年12月 总版技术专家分月排行榜第二
2014年9月 总版技术专家分月排行榜第二
Blank
红花 2015年3月 .NET技术大版内专家分月排行榜第一
2015年2月 .NET技术大版内专家分月排行榜第一
2015年1月 .NET技术大版内专家分月排行榜第一
2014年12月 .NET技术大版内专家分月排行榜第一
2014年11月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2015年7月 .NET技术大版内专家分月排行榜第二
2015年6月 .NET技术大版内专家分月排行榜第二
2015年5月 .NET技术大版内专家分月排行榜第二
2014年10月 .NET技术大版内专家分月排行榜第二
2014年9月 .NET技术大版内专家分月排行榜第二
2014年8月 .NET技术大版内专家分月排行榜第二
Bbs4
本版专家分:1230
接收不到消息的疑惑!!!
在向一个窗体发<em>消息</em>时,窗体最小化时收<em>不到</em><em>消息</em>,我用的发<em>消息</em>是sendmessage();在vc中此问题不出现,我在主窗体中加入wmcopydata() message wm_copydata函数<em>接收</em><em>消息</em>,当窗体最小化时<em>接收</em><em>不到</em><em>消息</em>,最大化时正常,当窗体在后台时也正常,只有最小花时收<em>不到</em>!!
C# 控制 WndProc()接收处理消息的频率
我用终端机扫描信息后 打印扫描的信息 但是由于机器太灵敏 他会出现一秒内扫描很多次 导致会打印出多条 一样的信息rn 我现在想10秒内 只能处理一次 该怎么弄?。rn代码如下: rn[code=csharp]DateTime? lastScanTime = null;rn protected override void WndProc(ref Message msg)rn rn tryrn rn rn if (lastScanTime == null)rn rn lastScanTime = DateTime.Now;rn rn elsern rn TimeSpan span = DateTime.Now - lastScanTime.Value;rn if (span.Seconds < 10)rn return;rn rn rn if (msg.Msg == WM_SCANCODE_ENGINE_NOTIFY) // BarCode的自定义<em>消息</em>通知rn rn rn uint nDataLen = 0; //= (int)msg.WParam;rn uint nBarCodeType = 0;// = (uint)msg.LParam;rn byte[] BarCodeData;rn barcode.GetBarCodeReaderRes(ref nBarCodeType, ref nDataLen, null);rn if (nDataLen > 0)rn rn rn string mess = "正在处理";rn BarCodeData = new byte[nDataLen];rn barcode.GetBarCodeReaderRes(ref nBarCodeType, ref nDataLen, BarCodeData);rn string str1 = Encoding.Default.GetString(BarCodeData, 0, (int)nDataLen);rn this._BaseForm.DecodeText(ref mess);rn this._BaseForm.GetTick(str1, 1);rn barcode.DoBeep(1, 50, 80);rn rn rn if (_BaseForm.PrintMessage != "" && _BaseForm.isScan)rn rn int ct = barcode.DoPrint(_BaseForm.PrintMessage, "宋体", 30, 100);rn rn rn rn elsern rn base.WndProc(ref msg);rn rn rn rn rn rn catch (Exception ex)rn rn rn rn rn [/code]
[Help]请教通过WndProc接收消息的问题...
参考海康采集卡中客户端服务端收发指令的代码;rn改成C#版后,<em>接收</em><em>消息</em>有问题,要把鼠标放在窗体上才能收到<em>消息</em>(否则收<em>不到</em>);rn感觉发指令没问题,用C#程序发VC++程序来<em>接收</em>可立即<em>接收</em>到<em>消息</em>。。。rn请大家帮忙看下哪里有问题,谢谢。。。rnrn/////////////////////////////////////////////rnrn[color=#0000FF]//客户端向服务端发<em>消息</em>[/color]void CClientdemoDlg::OnButton6() rnrn UpdateData(TRUE);rn char ctemp[256];rn sprintf(ctemp,"%s",m_ipadd); //获取服务器IP地址rn bool flgSendToClient = false; //判断指令是否发送成功 rn rn //向指定IP的服务端发<em>消息</em>rn flgSendToClient = MP4_ClientCommandtoServer((LPCTSTR)ctemp,"MessageFromClient",17);rnrnrnrn#define WM_MYCOMMAND (WM_USER+1000) //自定义<em>消息</em>rnON_MESSAGE(WM_MYCOMMAND,OnMyCommand) //<em>消息</em>映射rn///////// RegisterMessageNotifyHandle(m_hWnd, MsgDataReady); //注册<em>消息</em>读取码流函数rn///////// MP4_ServerSetMessage(WM_MYCOMMAND,this->m_hWnd); //设置<em>接收</em>命令rnrn[color=#0000FF]//服务端<em>接收</em>客户端发送的<em>消息</em>[/color]rnvoid CHKVisionDlg::OnMyCommand(WPARAM wParam, LPARAM lParam)rnrn if ((BYTE)wParam == GETSTRING) [color=#FF0000]//客户端发送<em>消息</em>时才执行一次[/color]rn rn char ts[1000]; //收到<em>消息</em>以后wParam为0rn char ips[30]; //IP地址rn WORD tlen; //字符串长度rn memset(ts,0,1000);rn rn //读取客户端MP4_ClientCommandtoServer函数发送过来的<em>消息</em>rn MP4_ServerReadLastMessage(ips,ts,&tlen); rn sprintf(&(ts[tlen]),"\r\n"); //给字符串添加结束符rn MessageBox(ts);rn //AfxMessageBox(ts); //<em>接收</em>客户端发回的<em>消息</em>rn rnrn/////////////////////////////////////////////rnrn int k = 0; //统计发送的指令条数rnrn [color=#0000FF] //向服务器发<em>消息</em>[/color]rn private void SendMessageToServer_Click(object sender, EventArgs e)rn rn k++; //每发送一条加1rnrn string sIP = "192.168.1.1"; //服务器IP地址rn string msgToClient = "MessageFromClient 第" + k.ToString() + "条信息"; //<em>消息</em>内容rn ushort msgLen = ushort.Parse(msgToClient.Length.ToString()); //<em>消息</em>长度 rnrn bool flgSendCmd = false; //判断向服务器发送命令是否成功rn flgSendCmd = PcHikClient.MP4_ClientCommandtoServer(sIP, msgToClient,msgLen);rn rn rnrn [color=#FF0000] private const int WM_USER = 0x0400; //感觉这段定义没有用到。。。。rn public static readonly int WM_MYCOMMAND = WM_USER + 1000;rn public static readonly int GETSTRING = 0;[/color]rnrn [color=#0000FF] //<em>接收</em>客户端发回的<em>消息</em>[/color]rn protected override void WndProc(ref Message m)rn rn int k = int.Parse(m.WParam.ToString());rnrn if (k == 0) [color=#FF0000]//客户端没有发<em>消息</em>时感觉也执行[/color]rn rn StringBuilder ts = new StringBuilder("");rn StringBuilder ips = new StringBuilder(""); ;rn ushort tlen;rn rn //取出收到的<em>消息</em> rn HikServer.HikServer.MP4_ServerReadLastMessage(ips, ts, out tlen);rnrn if (ts != null && ts.Length > 0)rn rn MessageBox.Show(ts.ToString());rn rn rnrn base.WndProc(ref m);rn rnrnrn[color=#0000FF]//海康采集卡DLL中发指令和读指令内容的方法原型如下:[/color]rnrn[color=#0000FF]//给服务器发送字符串[/color]rnBOOL __stdcall MP4_ClientCommandtoServer(LPCTSTR m_lAddrIP, char *m_sCommand,WORD m_wLen)rnrn[DllImport("hikclient.dll")]rnpublic static extern bool MP4_ClientCommandtoServer(string m_lAddrIP, string m_sCommand, ushort m_wLen);rnrn[color=#0000FF]//读取客户端<em>消息</em>[/color]rnvoid __stdcall MP4_ServerReadLastMessage(char *m_sIP,char *m_sCommand,WORD *m_wLen); rnrn[DllImport("HikServer.dll")]rnpublic static extern void MP4_ServerReadLastMessage(StringBuilder m_sIP, StringBuilder m_sCommand, out ushort m_wLen);rn rn
Handler类接收不到消息
大家好,正在学习Android,照抄了书上一个例子,一个线程每隔100毫秒发一个<em>消息</em>,主线程<em>接收</em>到<em>消息</em>后,把一个小球的位置移动一下,但是程序在模拟器上运行的时候,小球不动,debug的时候发现,主线程一直没有<em>接收</em>到<em>消息</em>。代码如下,请大家帮我看一下。谢谢!!!rn[code=Java]rnimport android.app.Activity;rnimport android.content.Context;rnimport android.graphics.Canvas;rnimport android.graphics.Color;rnimport android.graphics.Paint;rnimport android.os.Bundle;rnimport android.os.Looper;rnimport android.os.Message;rnimport android.util.AttributeSet;rnimport android.view.View;rnimport android.os.Handler;rnrnpublic class MainActivity extends Activity rn rn class MyView extends View implements Runnable rn private int x = 20, y = 20;rn public MyView(Context context, AttributeSet attrs) rn super(context, attrs);rn setFocusable(true);rn new Thread(this).start();rn rn @Overridern public void run() rn Looper.prepare();rn RefreshHandler mRedrawHandler = new RefreshHandler();rn rn while (!Thread.currentThread().isInterrupted()) rn Message m = new Message();rn m.what = 0x101;rn mRedrawHandler.sendMessage(m);rn try rn Thread.sleep(100);rn catch (InterruptedException e)rn e.printStackTrace();rn rn rn rn @Overridern protected void onDraw(Canvas canvas) rn Paint p = new Paint();rn p.setColor(Color.GREEN);rn canvas.drawCircle(x, y, 10, p);rn super.onDraw(canvas);rn rn rn class RefreshHandler extends Handler rn @Overridern public void handleMessage(Message msg) // !!!从来没有执行到这里过rn if (msg.what == 0x101) rn MyView.this.update();rn MyView.this.invalidate();rn rn super.handleMessage(msg);rn rn ;rn rn private void update() rn int h = getHeight();rn y += 5;rn if (y >= h) rn y = 20;rn rn rn rn @Overridern public void onCreate(Bundle savedInstanceState) rn super.onCreate(savedInstanceState);rn// setContentView(R.layout.main);rn MyView v = new MyView(this, null);rn setContentView(v);rn rnrn[/code]
子控件接收不到消息
自主窗口是个dialog,上面加了个静态控件。现在重载了个CStatic,想自己处理静态控件的<em>消息</em>重载了里面的OnWndMsg,但是<em>接收</em><em>不到</em><em>消息</em>,求大神帮看看!!!
为何接收不到键盘消息
我从CWnd派生了一个新类,但为何<em>接收</em><em>不到</em>键盘<em>消息</em>?
使用eventbus接收不到消息
这个连接解决了很大一部分问题 http://jp1017.top/2016/05/31/EventBus3-%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8%E5%8F%8A%E6%B3%A8%E6%84%8F%E7%82%B9/ 1.首先可以判断一下  if (!EventBus.getDefault().isRegistered(this)) { Even
WTL+ATL 接收不到鼠标消息
程序简介:rnWTL+ATL写一个窗口,窗口响应鼠标点击事件。rnMFC写一个test程序,调用COM。rn问题:rn test程序调用COM可以正常显示窗口。可以是鼠标点击,没有取得响应。rn关键代码:rnclass CPricePanelContain : rn public CFrameWindowImpl, rn public CUpdateUIrnrnpublic :rnrn BEGIN_UPDATE_UI_MAP(CPricePanelContain)rn END_UPDATE_UI_MAP()rnrn BEGIN_MSG_MAP_EX(CPricePanelContain)rn MESSAGE_HANDLER(WM_LBUTTONDOWN,OnLButtonDown)rn MESSAGE_HANDLER(WM_SIZE,OnSize)rn MESSAGE_HANDLER(WM_DESTROY, OnDestroy)rn MESSAGE_HANDLER(WM_PAINT,OnPaint)rn rn CHAIN_MSG_MAP(CFrameWindowImpl)rn CHAIN_MSG_MAP(CUpdateUI)rn END_MSG_MAP()rn。。。。。。。。。。。。。。。。。。rnCreate(m_hParentWnd, //(接口传入)rn rcDefault, "TEST", WS_CHILDWINDOW|WS_OVERLAPPEDWINDOW, 0, NULL, NULL);//窗口创建函数
【求助】~~~消息队列接收不到消息~
操作<em>消息</em>队列的简单代码rn[code=C#]rn protected void Button1_Click(object sender, EventArgs e)rn rn MessageQueue queue = new MessageQueue();rn if (!MessageQueue.Exists(".\\private$\\BookShopOrders"))rn rn MessageQueue.Create(".\\private$\\BookShopOrders");rn rn queue.Path = ".\\private$\\BookShopOrders";rnrn queue.Send(TextBox1.Text,MessageQueueTransactionType.Single);rn Label2.Text = "ok";rn rnrn protected void Button2_Click(object sender, EventArgs e)rn rn string[] types = "System.String";rnrn MessageQueue queue = new MessageQueue();rn queue.Formatter = new XmlMessageFormatter(types);rn rn queue.Path = ".\\private$\\BookShopOrders";rn rn Message message = queue.Receive();rn Label1.Text = (string)message.Body;rn rnrn[/code]rnrn在专用队列中, 能发现BookShopOrders队列。rn第一个方法,即发送方法没有报错,[code=C#]Label2.Text = "ok";[/code]显示出来了rn但是不论怎么发送, 该队列的<em>消息</em>数目始终为0条rn导致怎么也接受不了已经发送的<em>消息</em>。rnrn还请各位不吝赐教,拜谢!
为何接收不到WM_TIMER消息???
用DirectDraw编程是,我以全屏独占的方式创建了一个窗口,但为何它<em>接收</em><em>不到</em>WM_TIMER<em>消息</em>呢?其他<em>消息</em>好象都可以<em>接收</em>(鼠标<em>消息</em>).
Eventbus接收不到消息问题
最近积累了好多问题和学习记录知识,但是最近公司项目实在太忙,抽不开身,后面有时间尽量都补上,今天先记录一个遇到的小问题:eventbus无法<em>接收</em>到<em>消息</em> 我仔细查看了<em>消息</em>体和订阅方法,都没找到问题,那么应该是我订阅注册过程的问题了,经过log日志打印终于找到了问题所在:eventbus普通的订阅事件,即eventbus.getDefault().post(xxx)方法必须是在订阅后发送<em>消息</em>才可<em>接收</em>
wndproc接受不到wm_keydown
unit Unit1;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls;rnrntypern TForm1 = class(TForm)rn lbl1: TLabel;rn btn1: TButton;rn privatern Private declarations rn publicrn procedure WndProc(var Message: TMessage);override;rn end;rnrnvarrn Form1: TForm1;rnrnimplementationrnrn$R *.dfmrnrn TForm1 rnrnprocedure TForm1.WndProc(var Message: TMessage);rnbeginrn inherited;rn if Message.Msg = WM_KEYDOWN thenrn beginrn lbl1.Caption := IntToStr(Message.WParam);rn end;rnend;rnrnend.rnrn如果窗体上没有按钮则是可以接受的,谁知道为什么?怎样才能在WndProc处理WM_KEYDOWN<em>消息</em>?
WndProc接收不到信息,请大家帮忙参考下
我有个USB按键,要捕获到按键信息,有个VB程序,按键按下时VB能<em>接收</em>到信息,现在用BCB我做了没有<em>接收</em>到信息,请大家帮帮忙。rnVB程序是这样的rn Public Const WM_USER = &H400rn Public Const WM_SNAP_KEYDOWN = WM_USER + &H3523rnrn Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, _rn ByVal wParam As Long, ByVal lParam As Long) As Longrn rn If uMsg = WM_SNAP_KEYDOWN Thenrn Call ProcessSnapShotrn End Ifrnrn Dim lpPrevWndProc As Longrn '查询原来默认的窗口过程指针rn lpPrevWndProc = GetWindowLong(hw, GWL_USERDATA)rn '调用原来的窗口过程rn WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)rn rn End FunctionrnrnBCB程序:rn.h里面:rn#define WM_SNAP_KEYDOWN (WM_USER + 0x3523)rnvoid __fastcall WndProc(TMessage & msg);rnrn.cpp里面:rnvoid __fastcall TfMain::WndProc(TMessage & msg)rnrn if( msg.Msg == WM_SNAP_KEYDOWN )rn ShowMessage("ooo");rnrn TForm::WndProc(msg); rnrnrn总是<em>接收</em><em>不到</em>,不知问题出在哪里rnrn
动态库中的组合框为什么接收不到消息
我在动态库中包含了一个CComboBox类,但是它<em>接收</em><em>不到</em>象CBN_SELENDOK, CBN_SELCHANGE这些<em>消息</em>,只是对一些象WM_KILLFOCUS这样的<em>消息</em>有反应;重载了PreTranslateMessage(...)后跟踪发现竟然没有从里面过,这是为什么呢?rn有没有办法让它对CBN_SELENDOK响应?
jms 订阅方式接收不到消息!!!!!!
发送<em>消息</em>没问题,就是同步<em>接收</em><em>不到</em>!!!! 跪求大神 在线等rnpackage com.fz.jms;rnrnimport java.util.Vector;rnrnimport javax.jms.*;rnrnimport org.apache.activemq.ActiveMQConnection;rnimport org.apache.activemq.ActiveMQConnectionFactory;rnrnpublic class TopicSubscribeSynchronous rnprivate String user = ActiveMQConnection.DEFAULT_USER; rn rn private String password = ActiveMQConnection.DEFAULT_PASSWORD; rn rn private String url = ActiveMQConnection.DEFAULT_BROKER_URL; rn rn private Topic topic = null; rn rn private TopicConnection topicConnection = null; rn rn private TopicSession topicSession = null; rn rn private TopicSubscriber topicSubscriber = null;rn rn //初始化rn private void initialize(String groupName) throws JMSException, Exception rn //连接工厂是用户创建连接的对象,这里使用的是ActiveMQ的ActiveMQConnectionFactory根据url,username和password创建连接工厂。 rn ActiveMQConnectionFactory TopicConnectionFactory = new ActiveMQConnectionFactory( rn user, password, url); rn //连接工厂创建一个jms connection rn topicConnection = TopicConnectionFactory.createTopicConnection(); rn //是生产和消费的一个单线程上下文。会话用于创建<em>消息</em>的生产者,消费者和<em>消息</em>。会话提供了一个事务性的上下文。 rn topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); //不支持事务 rn //目的地是客户用来指定他生产<em>消息</em>的目标还有他消费<em>消息</em>的来源的对象,两种<em>消息</em>传递方式:点对点和发布/订阅 rn topic = topicSession.createTopic(groupName); rn //会话创建<em>消息</em>的生产者将<em>消息</em>发送到目的地 rn topicSubscriber = topicSession.createSubscriber(topic);rn rn rn public Vector subscriberMessage(String groupName) throws JMSException, Exception rn initialize(groupName); rn topicConnection.start(); rn rn try rn // 开始监听 rn //consumer.setMessageListener(this);rn Vector v=new Vector(10);rn// for (int i=0; i<10; i++) rn// rn //同步<em>消息</em><em>接收</em>,使用receive方法,堵塞等待,直到<em>接收</em><em>消息</em>rn TextMessage txtMsg = (TextMessage) topicSubscriber.receive();rn// if(txtMsg==null)rn// rn// break;rn// elsern// rn rn String msg = txtMsg.getText();rn System.out.println(msg);rn v.add(msg);rn// rn rn// rn return v;rn catch (Exception e) rn // TODO: handle exceptionrn e.printStackTrace();rn return null;rn finallyrn rn close();rn rn rn rn rn // 关闭连接 rn public void close() throws JMSException rn if (topicSubscriber != null) rn topicSubscriber.close(); rn if (topicSession != null) rn topicSession.close(); rn if (topicConnection != null) rn topicConnection.close(); rn rnrnrnrn
C++网络编程,能发送消息接收不到消息
[code=C/C++]rnrn#include rn#include rn#include rn#include rnrnint main() rn WORD wVersionRequested;rn WSADATA wsaData;rn int err;rnrn wVersionRequested = MAKEWORD( 1, 1 );rnrn err = WSAStartup(wVersionRequested, &wsaData);rn if (err != 0) rn return -1;rn rnrn if (LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1) rn WSACleanup();rn return -1;rn rn SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0);rnrn SOCKADDR_IN addrSrv;rn addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);rn addrSrv.sin_family = AF_INET;rn addrSrv.sin_port = htons(6000);rnrn bind(sockSrv, (SOCKADDR*) &addrSrv, sizeof(SOCKADDR));rnrn listen(sockSrv, 5);rnrn SOCKADDR_IN addrClient;rn int len = sizeof(SOCKADDR);rnrn while (1) rn SOCKET sockConn = accept(sockSrv, (SOCKADDR*) &addrClient, &len);rn printf("有客户连接过来了\n");rnrn send(sockConn, "SUCCESS", strlen("SUCCESS") + 1, 0);rnrn char recvBuf[100];rn recv(sockConn, recvBuf, 100, 0);rn printf("%s\n", recvBuf);rnrn memset(recvBuf, 0x0, 100 * sizeof(char));rn closesocket(sockConn);rn rn return 0;rnrn[/code]rnrn这是网上找的代码,现在是当客户端连接上来的时候客户端能收到<em>消息</em>,可是客户端发送过来的<em>消息</em>这里打印不出来。还有上面的“有客户连接过来了”也打印不出来。麻烦大家帮忙看看。
socket多线程编程,客户机接收不到消息
主要是这个网页的内容,大家可以参照这个程序http://hi.baidu.com/eternity8013/blog/item/86bf7503c557deea09fa932b.htmlrn我在它的程序里面把线程DWORD WINAPI AnswerThread(LPVOID lparam) 里面的while去掉,也就是想实现,来一个客户机,我<em>接收</em>字符串然后发出去,程序运行时好的,但是有一些问题,例如 我的线程是要关闭的,CloseHandle,应该在什么地方调用,我是放在主程序while的最后调用的,还有在线程函数里面,我处理完之后应该关闭socket,即:rn//Write your processing code herern send(ClientSocket,recvbuf,strlen(recvbuf),0); rn printf("%s\n",recvbuf); rn closesocket(ClientSocket);//这是我添加的rnrn这样一运行serve程序,客户机就基本上收<em>不到</em><em>消息</em>,偶尔可以收到,rn而server程序按F5调试的时候,客户机就能收到<em>消息</em>了,搞了一个晚上还是没明白怎么回事?rn还有就是线程同步的问题,我用的是event,然后用WaitForSingleObject应该可以了吧?rn附上原网页:rn实现服务器端的多线程SOCKET Server C++/VC2008-08-30 22:45想要实现的功能:在服务器端有一个控制台程序(或者Windows服务),与多个客户端程序通讯,其中主线程有一个socket绑定在一个固定端口上,负责监听客户端的Socket信息。每当启动一个客户端程序,客户端发送来一个socket连接请求,server端就新开启一个线程,并在其中创建一个socket与该客户端的socket通讯,直到客户端程序关闭,结束该线程。主线程中的socket在应用程序退出时关闭。rnrn这里是Server端代码的简单示意,展示了如何创建多线程的Socket Server。rnrn#include "StdAfx.h" rn#include rnrnDWORD WINAPI AnswerThread(LPVOID lparam) rn rn SOCKET ClientSocket=(SOCKET)(LPVOID)lparam; rnrn int bytesRecv; rn char sendbuf[32]=""; rn char recvbuf[32]=""; rnrn while(1) rn rn bytesRecv=SOCKET_ERROR; rn for(int i=0;i); rn rn rn return 0; rnrnrnSocket的客户端程序就很简单了,可以使用VB拖一个WinSock控件到Form中,然后连接服务器的Socket并发送数据就行了。rnrn rn
急!CHttpFile接收不到返回消息?
用CHttpFile向服务器上传文件,服务器显示已经成功上传,并且发送了返回信息,但是CHttpFile就是收<em>不到</em>返回信息rn以下为源码:rnrn[code=C/C++]rnUSES_CONVERSION;rnCInternetSession Session;rnCHttpConnection *pHttpConnection = NULL;rnINTERNET_PORT nPort = 8080;rn CFile fTrack;rn CHttpFile* pHTTP;rn CString strHTTPBoundary = _T("BSQHttpBoundary");rn CString strPreFileData;rn CString strPostFileData;rn DWORD dwTotalRequestLength;rn DWORD dwChunkLength;rn DWORD dwReadLength;rn DWORD dwResponseLength;rn TCHAR szError[MAX_PATH];rn void* pBuf;rn LPSTR szResponse;rn CString strResponse;rn BOOL blnSuccess = TRUE;rn CString strDebugMessage;rn rn rn if (FALSE == fTrack.Open(strFilePath, CFile::modeRead | CFile::shareDenyWrite))rn rn AfxMessageBox(_T("Unable to open the file."));rn return FALSE;rn rn rn CString strFileName = strFilePath.Mid(strFilePath.ReverseFind('\\') + 1);rn strPreFileData = MakePreFileData(strHTTPBoundary, strFileName);rn strPostFileData = MakePostFileData(strHTTPBoundary);rn dwTotalRequestLength = strPreFileData.GetLength() + strPostFileData.GetLength() + fTrack.GetLength();rn rn dwChunkLength = 64 * 1024;rn rn pBuf = malloc(dwChunkLength);rn if (NULL == pBuf)rn return FALSE;rn rn tryrn rn pHttpConnection = Session.GetHttpConnection(defServerName,nPort);rn pHTTP = pHttpConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, defObjectName);rn pHTTP->AddRequestHeaders(MakeRequestHeaders(strHTTPBoundary));//"Content-Type: multipart/form-data; boundary=%s\r\n"rn pHTTP->SendRequestEx(dwTotalRequestLength, HSR_SYNC | HSR_INITIATE);rn rn#ifdef _UNICODErn pHTTP->Write(W2A(strPreFileData), strPreFileData.GetLength());rn#elsern pHTTP->Write((LPSTR)(LPCSTR)strPreFileData, strPreFileData.GetLength());rn#endifrn rn dwReadLength = -1;rn while (0 != dwReadLength)rn rn strDebugMessage.Format(_T("%u / %u\n"), fTrack.GetPosition(), fTrack.GetLength());rn TRACE(strDebugMessage);rn dwReadLength = fTrack.Read(pBuf, dwChunkLength);rn if (0 != dwReadLength)rn pHTTP->Write(pBuf, dwReadLength);rn rn rn#ifdef _UNICODErn pHTTP->Write(W2A(strPostFileData), strPostFileData.GetLength());rn#elsern pHTTP->Write((LPSTR)(LPCSTR)strPostFileData, strPostFileData.GetLength());rn#endifrn rn pHTTP->EndRequest(HSR_SYNC);rn rn [color=#FF6600]dwResponseLength = pHTTP->GetLength(); Read(szResponse, dwResponseLength);rn strResponse += szResponse;rn free(szResponse);rn dwResponseLength = pHTTP->GetLength();rn rn rn AfxMessageBox(strResponse);rn rn rn rn catch (CException* e)rn rn e->GetErrorMessage(szError, MAX_PATH);rn e->Delete();rn AfxMessageBox(szError);rn blnSuccess = FALSE;rn rn rn pHTTP->Close();rn delete pHTTP;rn rn fTrack.Close();rn rn if (NULL != pBuf)rn rn free(pBuf);rn rn rn return blnSuccess;rn[/code]
为什么删除用户的消息其他用户接收不到
我想在服务器中删除在线用户,编写代码如下: rnvoid CChatSrvrDoc::RclickUser(CString name, int mCode, BOOL bSendHandle) rn rnCMsg* pMsg = new CMsg; rnCClientSocket* pSock; rnPOSITION pos, temp; rnfor(pos = m_connectionList.GetHeadPosition(); pos != NULL;) rn rntemp = pos; rnpSock = (CClientSocket*)m_connectionList.GetNext(pos); rnif (pSock->name == name) rn rnpMsg->from = pSock->name; rnpMsg->picture = -3; //用户列表类型rnpMsg->ip = pSock->ip; rnm_connectionList.RemoveAt(temp); rnbreak; rn rn rnrnSendMsg(pSock, pMsg); rnrn rn然后在其它地方调用RclickUser方法: rnpDoc->RclickUser(username, -3, true); rn但是只有被删除的用户<em>接收</em>到了信息,而其他用户却<em>接收</em><em>不到</em>?rn其实,我的设想是这样的:被删除的用户的列表全部清除,其他用户列表清除被删除的用户。上面的代码只是删除自己,并没有全部清除。不知怎么实现,请高手指点!!谢谢!! rn
接收不到WM_COPYDATA传递过来的消息
我使用<em>消息</em>WM_COPYDATA进行2个应用程序间的通信。程序A发送<em>消息</em>,程序“Proxy”<em>接收</em><em>消息</em>。但是在程序执行过程中却收<em>不到</em><em>消息</em>,根本执行<em>不到</em><em>消息</em>响应函数。我是这么做的,请各位大侠帮忙看看是什么原因rnrn1)发送rnvoid CApplicationView::OnTest()rnrn NET_DATA data;rn memset(&data, 0, sizeof(NET_DATA));rn HWND hwnd = ::FindWindow(NULL, "Proxy - Proxy");rn if (hwnd == NULL)rn rn AfxMessageBox("未找到接受窗体!");rn rn COPYDATASTRUCT dataToProxy;rn dataToProxy.dwData = 0;rn dataToProxy.cbData = sizeof(NET_DATA);rn dataToProxy.lpData = &data;rn ::SendMessage(hwnd, WM_COPYDATA, (WPARAM)GetSafeHwnd(), (LPARAM)&dataToProxy);rnrnrn2)<em>接收</em>rn在View类中添加<em>消息</em>处理函数:rna)ProxyView.h中添加函数定义rnafx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct);rnb)ProxyView.cpp中添加<em>消息</em>映射rnBEGIN_MESSAGE_MAP(CProxyView, CView)rn ON_WM_COPYDATA()rnEND_MESSAGE_MAP()rn3)实现<em>消息</em>处理函数rnBOOL CProxyView::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)rnrn NET_DATA *data = (NET_DATA *)pCopyDataStruct->lpData;rn AfxMessageBox("收到<em>消息</em>!");rn return CView::OnCopyData(pWnd, pCopyDataStruct);rn
苹果手机通知中心接收不到QQ消息
最近几天发现手机QQ很安静,一个<em>消息</em>都没有,这不正常,万一有什么紧急事情呢(比如:佳人有约、基友搞基哈哈哈),收<em>不到</em><em>消息</em>,就不好了。 尝试用别的QQ发一条<em>消息</em>试试,还真是<em>接收</em><em>不到</em>,只有打开QQ才能查看<em>消息</em>,明明前段时间还是可以,为何最近闹脾气了呢? 首先: 1.确认手机设置里已经开启QQ<em>消息</em>通知。 2.手机QQ里的设置是否开启<em>消息</em>通知。 3.查看网络是否正常,测试别的软件如微信是否可以接
请问窗口怎么接收不到消息
我在一个DLL里面用::CreateWindow方法创建了一个自己的窗口,后来用::PostMessage方法发送<em>消息</em>给它,但这个窗口总是收<em>不到</em><em>消息</em>,请问是什么原因???rn创建窗口的代码如下:rn WNDCLASS wc;rn memset(&wc, 0, sizeof(wc));rn wc.lpfnWndProc = TheCmdWindowsProc;rn wc.style = CS_HREDRAW|CS_VREDRAW;rn wc.cbClsExtra = 0;rn wc.cbWndExtra = 0;rn wc.hInstance = NULL;rn wc.hIcon = NULL;rn wc.hCursor = LoadCursor(NULL, IDC_ARROW);rn wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);rn wc.lpszMenuName = NULL;rn wc.lpszClassName = "Test Windows";rn ATOM atClass = ::RegisterClass(&wc);rn // create windowrn m_hWndMain = ::CreateWindow("Test Windows", "", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, NULL, NULL);rnrn发送<em>消息</em>的语句为:rn::PostMessage(m_hWndMain, WM_USER+1, 111, 222);
DLL中的CAsyncSocket接收不到FD_CONNECT消息
DLL中的CAsyncSocket<em>接收</em><em>不到</em>FD_CONNECT<em>消息</em>?rn谢谢!
接收不到DATAGRID按钮列的消息
我用DATAGRID绑定一个数据库表,显示和分页都没有问题,在我的DATAGRID中还定义了“删除”和“编辑”按钮列,可是我的DataGrid1_ItemCommand,DataGrid1_DeleteCommand,DataGrid1_EditCommand三个<em>消息</em>处理过程都捕捉<em>不到</em><em>消息</em>,我确信三个过程的定义都没有问题。这到底是怎么回事?谢谢。
关于接收不到WM_KEYDOWN消息的问题
单文档结构的工程视图继承自CHTMLViewrn为什么我的视图类和框架类都<em>接收</em><em>不到</em>WM_KEWDOWN或WM_CHAR<em>消息</em>.rn(我的<em>消息</em>处理函数没有响应)
对话框为什么接收不到WM_IME_CHAR消息
我要把用户Type储存到CString m_TypeString;rn而对话框并未<em>接收</em>到WM_IME_CHAR<em>消息</em>。rn无何处理???rnrnBOOL CSsDlg::PreTranslateMessage(MSG* pMsg) rnrn CClientDC dc(this);rn switch(pMsg->message) rn rnrn case WM_IME_CHAR ://汉字rn m_TypeString.Insert(m_caretPos, pMsg->wParam>>8/*wParam&0xFF*/);rn rn m_TypeString.Insert(m_caretPos, pMsg->wParam/*wParam/256*/);rn m_caretPos+=2;rn dc.TextOut(1,300,m_TypeString);//我的意图就是在这里显示输入的m_TypeString,而结果如下rn AfxMessageBox(m_TypeString);//对话框根本没有<em>接收</em>到WM_IME_CHAR<em>消息</em>rnrn break;rn case WM_CHAR ://英语rn m_TypeString.Insert(m_caretPos, pMsg->wParam);rn rn m_caretPos++;rn dc.TextOut(1,100,m_TypeString);//WM_CHAR就正常了,不知道为什么rn break;rn rn return CDialog::PreTranslateMessage(pMsg);rnrnrnrn另外就是,为什么在对话框的WindowProc函数里处理WM_CHAR以及WM_IME_CHAR怎么不好使?rn
微信公众平台 自定义菜单 点击接收不到消息
本来是好的,修改了其它地方的代码,但应该不影响接<em>接收</em>啊。代码里面发现,根本就没有触发<em>接收</em>函数啊。rnrn怎么回事,急!!!!!
我的程序为什么接收不到消息
我做了一个基于对话框的程序,只有一个功能,<em>接收</em>键盘的keydown<em>消息</em>,但是当对话框上有控件的时候,onkeydown总是不能被调用,why?
Redis发布订阅接收不到广播的消息的问题
其实问题很简单,我广播出去的时候是传输的对象 //单节点实现方式,如果是单节点建议使用该方式,如果是分布式部署废弃该方式 Boolean sendFlag = webMessageHandler.sendMessageToUser(message); if(!sendFlag) {//发送失败广播出去,让其他节点发送 redisTemplate.conver...
求助,为什么接收不到DirectShow的通知消息?
为什么<em>接收</em><em>不到</em>DirectShow的EC_BUFFERING_DATA<em>消息</em>??其它的也收<em>不到</em>,只能收到EC_CLOCK_CHANGED和EC_PAUSED、EC_COMPLETE这几个<em>消息</em>,别的都收<em>不到</em>。。。
模态对话框接收不到WM_NCACTIVE消息
chrome上安装的ActiveX控件,弹出一个模态对话框后,不能响应WM_NCACTIVE<em>消息</em>(参数为false的时候)。其它浏览器可以正常进入OnNcActivate(BOOL bActive)处理。rn有没办法在弹出模态对话框后,点击其它区域时使模态对话框关闭?
我的对话框为什么接收不到键盘的消息
我用向导生成了一个对话框程序,什么也没做,就添加了WM_CHAR和WM_KEYDOWN<em>消息</em>,可是我在程序里设断点,调试的时候,两个<em>消息</em>处理函数根本没有被调用。
窗口怎么接收不到鼠标的消息
问题大概是这样的:rn我新建了一个单文档应用程序;rn然后在资源视图中添加了一个对话框资源。对话框的名字为:IDD_DIALOG1,对话框类型:Child,None;对该对话框新建一个类,类名为:class CMyDlg1 : public CDialog……。rn然后再在对话框上添加一个Button,并为该Button1添加了事件如下:rnvoid CMyDlg1::OnButton1() rnrn // TODO: Add your control notification handler code herern MessageBox("这是对话框窗口一");rnrn我的目的是想将对话框浮动在主框架上。于是我做了这样的处理:rn在框架类添加变量CMyDlg1 m_mydlg1;rn然后再CMainFrame::OnCreate函数内增加如下代码:rn m_mydlg1.Create(IDD_DIALOG1,this);rn m_mydlg1.ShowWindow(SW_SHOW);rn程序运行后,可以看到对话框IDD_DIALOG1浮动在框架上,但是,该浮动的对话框无法响应鼠标的任何事件,比如我点击对话框上的rnButton1,可是CMyDlg1::OnButton1()事件根本就无法响应。不知道为什么。又如何解决。rn希望高手们指点。
windows服务程序接收不到SERVICE_CONTROL_SESSIONCHANGE消息
一天时间一直在调试和查找资料,调试不出来啊,快纠结死拉,大哥哥大姐姐都帮忙看一下rnSERVICE_ACCEPT_SESSIONCHANGE状态都已经设定了,就是接<em>不到</em>SERVICE_CONTROL_SESSIONCHANGE<em>消息</em>rn[code=c]rnVOID ServiceHandler(DWORD controlCode,rn DWORD dwEventType,rn LPVOID lpEventData,rn LPVOID lpContext)rnrn WriteToLog("ServiceHandler");rn switch(controlCode)rn rn case SERVICE_CONTROL_SESSIONCHANGE:rn switch(dwEventType)rn rn case WTS_SESSION_LOGOFF:rn WriteToLog("logoff");rn break;rn case WTS_SESSION_LOGON:rn WriteToLog("logon");rn break;rn case WTS_SESSION_LOCK:rn WriteToLog("lock");rn break;rn case WTS_SESSION_UNLOCK:rn WriteToLog("unlock");rn break;rn rn break;rn case SERVICE_CONTROL_STOP:rn ExitProcess(0);rn rn return;rnrnVOID WINAPI ServiceMain(DWORD dwNumServicesArgs, PSTR *ppcServiceArgVectors)rnrn initFunctions();rn SERVICE_STATUS_HANDLE hService = NULL;rn SERVICE_STATUS SrvStatus = 0 ;rn hService = RegisterServiceCtrlHandlerA("ixil",ServiceHandler);rn SrvStatus.dwServiceType = SERVICE_WIN32;rn SrvStatus.dwControlsAccepted=SERVICE_ACCEPT_STOP |SERVICE_ACCEPT_SESSIONCHANGE;rn SrvStatus.dwCurrentState = SERVICE_RUNNING;rn SetServiceStatus(hService, &SrvStatus);rn CreateThread(NULL, 0, ThreadFunc, 0, 0, 0);rn return;rnrnrnrnrnint _tmain(int argc, _TCHAR* argv[])rnrnrn SERVICE_TABLE_ENTRYA scArrTable[] =rn rn "ixil", ServiceMain ,rn NULL, NULL rn ;rn StartServiceCtrlDispatcherA(scArrTable);rn return 0;rnrn[/code]
ios APNS 消息一直接收不到解决办法
下午的时候,我们的测试环境一直<em>接收</em><em>不到</em>APNS的<em>消息</em>(早上的时候收到了两条)。经过处理最后解决了问题,记录下,其他码龙朋友看到的话,也可以参考参考下。 具体有如下几条来排除问题的方案: 1.首先确保打开当前APP的<em>消息</em>推送允许设置。(Iphone设置里面打开,允许APP<em>接收</em>推送<em>消息</em>) 2. 打印下deviceToken看看是否有值,或者直接在下面注册成功的函数里面打个断点,看程序进不
为什么线程接收不到PostThreadMessage发送的消息
为什么线程<em>接收</em><em>不到</em>PostThreadMessage发送的<em>消息</em>?rn在线程的开始用PeekMessage(&msg,NULL,0,0,PM_REMOVE)语句建立了线程的<em>消息</em>队列,然后在用PostThreadMessage给线程发送<em>消息</em>,调试发现线程根本没收到<em>消息</em>。建立线程的<em>消息</em>队列时有什么要求吗?
测试APACHE MINA老是接收不到消息
今天测试APACHE MINA老是<em>接收</em><em>不到</em><em>消息</em>,以为程序问题,原来是JAR包版本问题,折腾了我一天啊 错误发生我用的如下JAR包 slf4j-api-1.6.6.jar slf4j-log4j12-1.5.8.jar 运行出现如下错误 nested exception is java.lang.NoSuchMethodError: org.slf4j.helpers.Message...
为什么程序接收不到功能键键盘的消息??
主函数的程序段如下: rnchar c;rnc=getch();rnif(c==VK_F1)rn rn sys.user();rn rn程序执行的时候按下F1程序直接跳出了,<em>接收</em><em>不到</em>F1的键盘<em>消息</em>?这是为什么呢??
为什么一直接收不到MM_MIXM_CONTROL_CHANGE消息
我在一个子对话框中想<em>接收</em>MM_MIXM_CONTROL_CHANGE<em>消息</em>,来显示音量的变化rnrnBEGIN_MESSAGE_MAP(Mp2Dlg, CDialog)rn //AFX_MSG_MAP(Mp2Dlg)rn ON_BN_CLICKED(IDC_RECORD, OnRecord)rn ON_CBN_SELCHANGE(IDC_SAMPLE, OnSelchangeSample)rn ON_BN_CLICKED(IDC_BUTTON1, OnButton1)rn ON_BN_CLICKED(IDC_RECORDSTOP, OnRecordstop)rn ON_BN_CLICKED(IDC_RECORDFILE, OnRecordfile)rn ON_BN_CLICKED(IDC_RECORDTCP, OnRecordtcp)rn ON_WM_HSCROLL()rn //AFX_MSG_MAPrn ON_MESSAGE(MM_MIXM_CONTROL_CHANGE,OnMixerCtrlChange)rnEND_MESSAGE_MAP()rnrnafx_msg void OnMixerCtrlChange(WPARAM wparam , LPARAM lparam);rnrnvoid Mp2Dlg::OnMixerCtrlChange(WPARAM wparam,LPARAM lparam)rnrn Afxmessagebox("变化");rnrnrn我是这样定义的,但是音量变后也没有跳出对话框,请问是怎么回事??
为什么自绘控件接收不到WM_MEASUREITEM消息?
重载PreCreateWindwornrnBOOL CMyListBox::PreCreateWindow(CREATESTRUCT &cs)rnrn if (! CListBox::PreCreateWindow(cs))rn return FALSE;rnrn cs.dwExStyle |= WS_EX_CLIENTEDGE;rn cs.style &= ~(LBS_OWNERDRAWVARIABLE|LBS_SORT);rn cs.style |= LBS_OWNERDRAWFIXED ;rn return TRUE;rnrnrn可是我在CMyListBox::MeasureItem里设置断点居然根本不进入这个过程rnrn为什么<em>接收</em><em>不到</em>WM_MEASUREITEM<em>消息</em>?
为何在OnReceive 里接收不到消息
是否有其他什么条件
对话框为什么接收不到WM_IME_CHAR消息?(
我要把用户Type储存到CString m_TypeString;rn而对话框并未<em>接收</em>到WM_IME_CHAR<em>消息</em>。rn无何处理???rnrnBOOL CSsDlg::PreTranslateMessage(MSG* pMsg) rnrn CClientDC dc(this);rn switch(pMsg->message) rn rnrn case WM_IME_CHAR ://汉字rn m_TypeString.Insert(m_caretPos, pMsg->wParam>>8/*wParam&0xFF*/);rn rn m_TypeString.Insert(m_caretPos, pMsg->wParam/*wParam/256*/);rn m_caretPos+=2;rn dc.TextOut(1,300,m_TypeString);//我的意图就是在这里显示输入的m_TypeString,而结果如下rn AfxMessageBox(m_TypeString);//对话框根本没有<em>接收</em>到WM_IME_CHAR<em>消息</em>rnrn break;rn case WM_CHAR ://英语rn m_TypeString.Insert(m_caretPos, pMsg->wParam);rn rn m_caretPos++;rn dc.TextOut(1,100,m_TypeString);//WM_CHAR就正常了,不知道为什么rn break;rn rn return CDialog::PreTranslateMessage(pMsg);rnrnrnrn另外就是,为什么在对话框的WindowProc函数里处理WM_CHAR以及WM_IME_CHAR怎么不好使?rn
关于CocoaAsyncSocket接收不到消息的问题
使用CocoaAsyncSocket过程中碰到不回调<em>接收</em><em>消息</em>的函数- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag原因是[_tcpSocket readDataWithTimeout:5 tag:tag];这个函数的执行问题 首先从字面意思上看这个方法的作用像是(读? or <em>接收</em>?)...
我的窗口突然接收不到WM_MOUSEMOVE消息
我的窗口之前还是好好的,可以正常<em>接收</em>WM_MOUSEMOVE<em>消息</em>,并且正常处理,我后来重载了下PreTranslateMessage()函数,也改了些别的地方,现在就收<em>不到</em>WM_MOUSEMOVE<em>消息</em>了,鼠标无论在窗口上怎么移动,都没有WM_MOUSEMOVE<em>消息</em>过来,在PreTranslateMessage()函数里也<em>接收</em><em>不到</em>,我把PreTranslateMessage()函数重载删除了,还是收<em>不到</em>WM_MOUSEMOVE<em>消息</em>,现在WM_NCHITTEST<em>消息</em>都是可以正常<em>接收</em>的,请问各位大侠,是不是我哪里改错了导致窗口收<em>不到</em>WM_MOUSEMOVE<em>消息</em>了,还是别的什么原因?
窗口隐藏后为何接收不到消息
有一个基于对话框的程序,另一个程序使用sendmessage或者postmessage向它发送<em>消息</em>。rn如果用showwindow隐藏了对话框,它就<em>接收</em><em>不到</em><em>消息</em>;rn如果将其显示出来,它就立刻能够<em>接收</em>到了。rn为什么?
ActiveMQ:点对点队列消费者接收不到消息
一.环境说明 Windows 1709 阿里云ECS CentOS 7.4 ActiveMQ 5.15.2 JDK 1.8 IDEA 2017.3 Maven 3.5.0 二.问题说明远程<em>消息</em>服务器使用的是阿里云ECS,在windows上编写测试类测试<em>消息</em>队列的点对点的通信,却发现,无法消费生产者生产的<em>消息</em>,即<em>接收</em><em>不到</em><em>消息</em>.三.代码testProducer @Test public v
UI线程接收不到窗口消息
启动了一个UI线程,在线程里创建一个窗口。如下:BOOL CProcessWnd::InitInstance()rnrn // TODO: perform and per-thread initialization herern wnd=new CFrameWnd;rn wnd->CreateEx(WS_EX_TOOLWINDOW,NULL,NULL,WS_POPUP,0,0,0,0,NULL,NULL);rn wnd->ShowWindow(SW_HIDE);rn m_pMainWnd=wnd;rn return TRUE;rnrn在确定线程已经运行后,在dll里向其窗口发送自定义<em>消息</em>WM_USER_UI,在PreTranslateMessage截获rnBOOL CProcessWnd::PreTranslateMessage(MSG* pMsg) rnrn if(pMsg->message==WM_USER_UI)rn ..rn rn return CWinThread::PreTranslateMessage(pMsg);rnrn但只能<em>接收</em>到一小部分<em>消息</em>,百思不得其解
WndProc如何获得窗口的消息
一个扩展控件代码。有以下代码,可以获得一个键盘输入的<em>消息</em>。实现只能输入数字的功能。rnrnpublic partial class CustomControl1 : TextBoxrn rn protected override void WndProc(ref Message m)//Control.WndProc处理 Windows <em>消息</em>。 rn rn if (m.Msg == 0x0102 && !Char.IsControl((char)m.WParam))rn rn //0x0102,字符<em>消息</em>,也称为键盘<em>消息</em>,如果某窗口拥有输入焦点,当用户在应用程序运行时按下一个键时,rn //系统就会产生一个键盘<em>消息</em>0x0102,告诉此窗口键盘上哪个键被按下了rn if (Char.IsNumber((char)m.WParam))rn rn base.WndProc(ref m);rn rn return;rn rn base.WndProc(ref m);rn rn rnrn我的问题是,如果我在写扩展控件的时候,想在控件里实现一些事件,例如:鼠标移入、移出、点击等等。应该可以通过这个<em>消息</em>Message 获得,就像这个例子中m.Msg == 0x0102 是键盘输入的<em>消息</em>(这几乎就是一个键盘事件)。然后就可以直接在控件里实现事件功能,而不用取调用界面中实现。这样控件的封装性就更好。其他的事件(例如:很多鼠标事件)有对应的<em>消息</em>吗?<em>消息</em>的代码又是什么呢?我查啦一些资料,也没有找到有用的内容只好上来求助各位大虾了,望各位不吝赐教!rn
消息Bean部署后为什么接收不到消息
jbuilder7+weblogic,程序很简单,估计是部署或配置方面的问题
微信公众平台开发【接收消息接收普通消息
当普通微信用户向公众账号发<em>消息</em>时,微信服务器将POST<em>消息</em>的XML数据包到开发者填写的URL上。服务器在解析此数据包,获取相关参数的值从而做出回复。<em>接收</em>普通<em>消息</em>主要包括:文本<em>消息</em>、图片<em>消息</em>、语音<em>消息</em>、视频<em>消息</em>、小视频<em>消息</em>、地理位置<em>消息</em>、链接<em>消息</em>。XML数据包结构和相关参数如下: 1、文本<em>消息</em> 1348831860 1234567890123456 参数
接收消息与事件(关注/接收普通消息
带你走进当下比较火爆的微信开发企业平台开发,畅享现有互联网的开发资源
窗体接收消息转成控制台接收消息。。。
窗体程序中,调用rnSetFileEndMsg(0,this.Handle, WM_FILE_END);rn可以在特定时间向本窗体this.Handle发送WM_FILE_END窗体<em>消息</em>rn然后重写窗体<em>消息</em><em>接收</em>函数如下:rn[code=C#]rn /// rn /// 重写窗体<em>接收</em>信息rn /// rn /// rn protected override void WndProc(ref Message m)rn rn if (m.Msg == WM_FILE_END)rn //当播放完成(即合并完成的时候,会发送<em>消息</em>给窗体)rn OnMyCommand(m.WParam, m.LParam);rn rn base.WndProc(ref m);rn rnrn rn //<em>接收</em>到完成的信号时,调用rn public static void OnMyCommand(IntPtr wParam, IntPtr lParam)rn rn //---------------------------rn rn[/code]rn现在要将该窗体程序改为控制台,可是控制台并没有窗体。。也就不能用那个SetFileEndMsg来发送结束<em>消息</em>了~~rnhow can i do。。。rn
接收消息
相关网址:http://mp.weixin.qq.com/wiki/7/9f89d962eba4c5924ed95b513ba69d9b.html    1. 关注/取消关注事件     用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎<em>消息</em>或者做帐号的解绑。    ①微信服务器在五秒内收<em>不到</em>响应会断掉连接,并且重新发起请求,
ActiveMQ暂停接收消息与恢复接收消息
目录   ●问题起因 ●解决方案 ●测试结果 ●问题起因 使用ActiveMQ的过程中,有这么一个很常见的需求:如果我的<em>消息</em>消费者压力过大,<em>接收</em><em>消息</em>来不及处理,我想暂停<em>接收</em><em>消息</em>,先处理完已<em>接收</em>到的<em>消息</em>后,再恢复继续<em>接收</em>新的<em>消息</em>。 比较诡异的是,这样一个看似简单的功能,百度上居然没有一个适用的方案,大家不信的话可以搜索试试: 第一篇文章看似OK,但是点进去你会发现他的实现方式依旧...
消息接收
从基础到项目的深入化讲解,手把手带你玩儿转微信公众平台nn开发基础准备、 开发模式接入、<em>消息</em>的<em>接收</em>与响应、n被关注回复与关键词回复、图文<em>消息</em>的发送与响应n、获取access_token、上传素材与图片<em>消息</em>回复n、自定义菜单实现、第三方API接口调用n天气查询项目实战
WndProc
为什么TForm::Form不能调用WndProc而继承TForm的TForm1却可以调用rn而WndProc是在TCustomForm中就已经定义了么我的一个类rnrnTXXX:rn里有个rnForm:TFormrnrn主函数1中rn让TXXX.Form:=Form1(或self)rnrn主函数2中rn让TXXX.Form:=Form2(或self)rnrn我想重载Form的winproc来处理form1,form2....的公共winproc代码,怎么办?rn
请问ce高手,窗口的消息(其他进程发来的消息)是在什么地方接收的啊?怎么没有WndProc( ) ?
请问ce高手,窗口的<em>消息</em>(其他进程发来的<em>消息</em>)是在什么地方<em>接收</em>的啊?怎么没有WndProc( ) ?rn十万火急啊!
一个C++Bulider 消息过程处理WndProc的问题
TForm类继承于TCustomForm类。在TCustomForm类中,WndProc是一个Protected的Virtual函数。TForm类中未有另外实现WndProc。TForm1类(也就是我们创建新的工程时默认生成的)继承于TForm类。rnrn好了,问题就来了,当我在TForm1中重新实现WndProc时,编译提示在Obj中已经有了这个WndProc。rn而且我在TForm1的实例Form1中通过TCustomForm::WndProc调用时,提示TCustomForm::WndProc是不可见的,不是说好了Protected可以在子类中被访问吗。rn那么,我如果自己重现WndProc处理一些特定的<em>消息</em>过后,其它的<em>消息</em>我应该传给谁去处理呢?我看到很多书上有写着是TForm::WndProc。而这里编译时实际上指向了TCustomForm::WndProc,提示不可见,不能调用。
BCB为什么WndProc无法截获WM_KEYDOWN消息
不过OnMessage却可以?rnrnvoid __fastcall TForm1::WndProc(TMessage &Message)rnrn if(Message.Msg==WM_KEYDOWN && Message.WParam=='D')rn Panel1->Color=clLime;rn TForm::WndProc(Message);rnrn//---------------------------------------------------------------------------rnvoid __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,rn bool &Handled)rnrn if(Msg.message==WM_KEYDOWN && Msg.wParam==VK_TAB)rn rn Panel2->Color=clLime;rn Handled=true;rn rn elsern Handled=false;rn
如何在Form1下重写WndProc(消息)
[code=C#]rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Text;rnusing System.Windows.Forms;rnusing Microsoft.WindowsCE.Forms;rnnamespace TakeMessage_Copydata_rnrn public partial class Form1 : Formrn rn MsgWindow MsgWin;rn public Form1()rn rn InitializeComponent();rn this.MsgWin = new MsgWindow(this);rn rn rn public partial class MsgWindow : MessageWindowrn rn public const int WM_COPYDATA = 0x004A;rn private Form1 F;rn public MsgWindow(Form1 F)rn this.F = F; rn protected override void WndProc(ref Message msg)rn rn if (msg.Msg == WM_COPYDATA)rn rn //....rn rn base.WndProc(ref msg);rn rn rnrn[/code]rnWM开发时,用远程SPY调试,很多<em>消息</em>都无法捕获到,后发现MsgWindow,Form1处于不同句柄,猜测可能是接受的<em>消息</em>大部分是指向Form1而不是MsgWindow才导致WndProc无法捕获.故求在Form1下重写WndProc的方法.如果不是这原因导致,那会是什么原因?
怎么在自己的类中响应WndProc消息
如题
在WndProc中提取消息内容的方法?
因为从PictureBox继承写出的Button无法响应键盘事件rn所以只能自己写事件了 rn想从WndProc的Message里面提取按键内容rn通过Message.GetLParam()方式取的时候总是报错 :ExecutionEngineExceptionrn有没有更好的方法能提取<em>消息</em>里面的按键值rn不能用钩子额 rn公司考虑安全问题,所以不让用rn比较急,望赐教......
TmyEdit的WndProc中处理WM_CHAR消息的问题
如何在WM_CHAR<em>消息</em>里判断输入了一个汉字或者一个ASCII?
WndProc如何获得某个XX的消息
比如 RichTextBox 的<em>消息</em>。rn我用以下代码没办法获得RichTextBox 的<em>消息</em>,只能获得窗口的<em>消息</em>。没办法获得窗口内部件的<em>消息</em>。rn protected override void WndProc(ref Message m) rn System.String MText = "";rn MText += " m.Msg:" + m.Msg.ToString() + " ";rn MText += " m.HWnd:" + m.HWnd.ToString() + " ";rn MText += " m.LParam:" + m.LParam.ToString() + " ";rn MText += " m.WParam:" + m.WParam.ToString() + " ";rn MText += " m.Result:" + m.Result.ToString() + " ";rn Console.WriteLine(MText);rn base.WndProc(ref m);rn
WndProc重载原来没办法中断消息吗?
procedure WndProc(var Message: TMessage);override;rnrn可以加上自己的处理,系统原来的处理还是一样发生。 rn有没办法中断系统默认处理。只运行我自己的处理?
接收普通消息文本消息
“微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发<em>消息</em>、客服<em>消息</em>(有限次<em>消息</em>推送)、模板<em>消息</em>接(无限次<em>消息</em>推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、<em>接收</em>普通<em>消息</em>、被动回复用户<em>消息</em>,等知识点。 rn以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 rn购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 rn课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 rn“微信公众平台企业号开发Java版”陆续上线。rn详情 qq2326321088
listview 如何处理右键消息消息处理函数WndProc里怎么搞
rn我就是想在listview点右键选中一行然后弹出一个菜单rncase WM_NOTIFY:rn下面怎么写,
jrtp接收不到数据
这是我的<em>接收</em>端的源代码:[code=css]#include "rtpsession.h"rn#include "rtppacket.h"rn#include "rtpudpv4transmitter.h"rn#include "rtpipv4address.h"rn#include "rtpsessionparams.h"rn#include "rtperrors.h"rn#include rn#include rn#include rn#include rn#include rn#include rnrn#include "rtpsourcedata.h"rnrnclass MyRTPSession : public RTPSessionrnrnprotected:rn void OnPollThreadStep();rn void ProcessRTPPacket(const RTPSourceData &srcdat,const RTPPacket &rtppack);rn;rnrnvoid MyRTPSession::OnPollThreadStep()rnrn BeginDataAccess();rn // check incoming packetsrn if (GotoFirstSourceWithData())rn rn dorn rn RTPPacket *pack;rn RTPSourceData *srcdat;rn rn srcdat = GetCurrentSourceInfo();rn rn while ((pack = GetNextPacket()) != NULL)rn rn rn ProcessRTPPacket(*srcdat,*pack);rn DeletePacket(pack);rn rn while (GotoNextSourceWithData());rn rn rn EndDataAccess();rnrnrnvoid MyRTPSession::ProcessRTPPacket(const RTPSourceData &srcdat,const RTPPacket &rtppack)rnrn printf("got packet!\n");rnrnrnint main()rnrn MyRTPSession sessrecv;rn short portbase;rn std::string ipstr;rn int status,num;rnrn // First, we'll ask for the necessary informationrn rn portbase=8020;rn num=10;rn int i;rn RTPUDPv4TransmissionParams transparams;rn RTPSessionParams sessparams;rn sessparams.SetOwnTimestampUnit(1.0/8000.0); rn rn transparams.SetPortbase(portbase);rn status = sessrecv.Create(sessparams,&transparams); rn checkerror(status);rn rn // Wait a number of secondsrn for(i=0;i
NMUDP接收不到数据
我现在用NMPUDP实现一个UDP小程序,发送程序可以实现,但是<em>接收</em><em>不到</em>数据,<em>接收</em>事件是通过NMUDP1DataReceived实现的,但是<em>接收</em><em>不到</em>数据的问题出现了,用断点调试,发现程序根本不执行该函数内容,这是为什么呢?谁来帮忙解决下啊。。。灰常感谢
发送消息怎么接收不到
在view类里加入了rn#define WM_MY_MESSAGE (WM_USER+100)rn在右键的时候用rnSendMessage(WM_MY_MESSAGE,0,0);rnrn在MainFrame里rn加入了rn.hrn#define WM_MY_MESSAGE (WM_USER+100)rnafx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);rnrn.cpprnON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)rnrnLRESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)rnrn MessageBox("CMainFrame!");rn return 0;rnrnrn运行后在view里点击右键,发的<em>消息</em>在MainFrame里没接到呢?
at指令接收不到数据
过程状态如下:rn 使用超级终端能够和手机正常通讯,发送:at,返回:OK, 关闭睡眠:at+eslp=0其他通用指令都能使用。然后关闭超级终端,重启手机,用自己的程序打开串口,发送指令,都能<em>接收</em>得到。关闭程序,重启手机几次后,用自己的程序和手机执行以上命令,都正常返回。rn int Init()rn rn char ans[128]=0; // 应答串rnrn // 测试GSM-MODEM的存在性rn WriteComm("AT\r", 3);rn ReadComm(ans, 128);rnrn if (strstr(ans, "OK") == NULL)rn rn return 0;rn rnrn //AT+ESLP=0 关闭睡眠rn WriteComm("AT+ESLP=0\r", 10);rn ReadComm(ans, 128); rn rnrn int WriteComm(void* pData, int nLength)rn rn DWORD dwNumWrite; // 串口发出的数据长度rn WriteFile(hComm, pData, (DWORD)nLength, &dwNumWrite, NULL);rn return (int)dwNumWrite;rn rnrn int ReadComm(void* pData, int nLength)rn rn DWORD dwNumRead; // 串口收到的数据长度rn ReadFile(hComm, pData, (DWORD)nLength, &dwNumRead, NULL); rn return (int)dwNumRead;rn rnrn 拔掉数据线,重新插入。开启自己的程序,连接手机,打开串口,发送指令。此时<em>接收</em><em>不到</em>任何应答数据。rn不知道为何?rn rnrn rn rn
为什么接收不到数据
我写的上位机程序,用串口助手可以<em>接收</em>到它发来的数据,问什么它<em>接收</em><em>不到</em>串口助手发过来的数据,下面是它<em>接收</em>数据的代码,大家帮我看看,谢谢!rnrnprocedure TForm1.Button7Click(Sender: TObject);rnrnvarrndata:string;rnBufferLength:word;rnBuffer:Pointer;rnbegin rnSetLength(data,BufferLength);rnmove(Buffer^,pchar(data)^,Bufferlength);rnMemo1.lines.Add(data);rnMemo1.Invalidate;rnrnend;
javamail 接收不到邮件
我花了4天的时间解决这个bug,其中花费的有效时间是6个半时间,超级郁闷呀!!!现在把结果贴出来,希望能帮助同行少走弯路。   1 刚开始遇到connect timeout,即连接超时,我花了3个半小时解决这个问题。   开始时以为是代码哪儿写的不对,反复更改代码,最后改到自己都乱掉了。最后静下心了,仔细查错误,connet timeout应该有两种可能1)邮件服务器的地址没写对  2)防...
百度推送-接收不到的问题
本人使用小米2手机测试发现百度推送会有<em>接收</em><em>不到</em>的情况,解决方案   1、删除sd卡根目录的baidu文件夹(本人删除后推送能够<em>接收</em>到) 2、http://blog.csdn.net/vinrex/article/details/40008149(未测试过,感觉靠谱) ...
Receive()接收不到数据?
出问题的程序段如下:rnwhile(!bExit)rnrn // 等待主线程传来Accept生成的socket值rn ::WaitForSingleObject(MyView->ReceiveStart.m_hObject, INFINITE);rnrn // 准备开始互斥完成工作rn if (localLock->Lock(0)) rn rn MyView->ReceiveStart.ResetEvent();rn recvSocket.Attach(MyView->m_RecvSocket);// 获得当前这个socketrn MyView->AcceptNow.SetEvent(); rn localLock->Unlock(); // 解锁rn recvdSize = recvSocket.Receive((char*)&recved_pkt, sizeof(PKT));rn if (recvdSize == SOCKET_ERROR) ;rn elsern ;rnrn说明:MyView是指向View的指针,m_RecvSocket是一个View的成员变量,保存Accept时生成的socket,其它一些是CEvent的对象,用来完成线程间同步。rnrnrn每次recvdSize都是SOCKET_ERROR, 即使其中那句“recvSocket.Attach(MyView->m_RecvSocket)”(对Attach()我的理解不太深)改成recvSocket.m_hSocket = MyView->m_RecvSocket.m_hSocket, 也会报错,错误编号10038(WSAENOTSOCK)。真是摸不着头脑,希望有行家能给我解答一下。rnrn多谢多谢!!
串口通讯 接收不到
[code=C/C++]#define RECV_BUFF_SZIE 1024rn#define SEND_BUFF_SZIE 256rn#define RECV_TIME_OUT 2000rn#define SEND_TIME_OUT 1000rnrn//////////////////////////////////////////////////////////////////////rn// Construction/Destructionrn//////////////////////////////////////////////////////////////////////rnrnCComMng::CComMng()rnrn m_pOwner = NULL;rn m_hCom = NULL;rn m_hWrite = NULL;rn m_hRead = NULL;rn m_dwWriteID = NULL;rn m_dwReadID = NULL;rn m_nWriteExitTimeOut = 2000; //写线程退出超时时间rn m_nReadExitTimeOut = 2000; //读线程退出超时时间rn InitializeCriticalSection(&m_cs);rn m_hSendEvent = CreateEvent(NULL, TRUE, FALSE, NULL);rn m_hRecvEvent = CreateEvent(NULL, TRUE, FALSE, NULL);rnrnrnCComMng::~CComMng()rnrn Release();rn DeleteCriticalSection(&m_cs);rn CloseHandle(m_hSendEvent);rn CloseHandle(m_hRecvEvent);rnrnrnUINT CComMng::Initial(RecvBuff *recv, void *pOwner, UINT nPort, UINT nBaudRate, BYTE nByteSize, UINT nStopBits, BYTE nParity)rnrn m_pOwner = pOwner;rn UINT nRes = OpenCom(nPort); //打开端口rn if (ERR_OK != nRes)rn rn return nRes;rn rnrn m_pRecvBuff = recv;rnrn //启动I/O线程rn m_hWrite = CreateThread(NULL, NULL, WriteProc, this, NULL, &m_dwWriteID);rn m_hRead = CreateThread(NULL, NULL, ReadProc, this, NULL, &m_dwReadID);rn m_bEndWriteThread = FALSE;rn m_bEndReadThread = FALSE;rn return ERR_OK;rnrnrnUINT CComMng::Release()rnrn m_bEndWriteThread = TRUE;rn m_bEndReadThread = TRUE;rnrn //等待写线程退出,如果超时,则强制结束rn UINT nRes =WaitForSingleObject(m_hWrite, m_nWriteExitTimeOut);rn if (nRes == WAIT_TIMEOUT)rn rn TerminateThread(m_hWrite, 0x02);rn rn m_dwWriteID = NULL;rn CloseHandle(m_hWrite);rnrn //等待读线程退出,如果超时,则强制结束rn nRes =WaitForSingleObject(m_hRead, m_nReadExitTimeOut);rn if (nRes == WAIT_TIMEOUT)rn rn TerminateThread(m_hRead, 0x02);rn rn m_dwReadID = NULL;rn CloseHandle(m_hRead);rnrn CloseCom();rn return ERR_OK;rnrnrnUINT CComMng::OpenCom(UINT nCom)rnrn char szText[MAX_PATH] = 0;rn sprintf(szText, "COM%d", nCom);rn m_hCom=CreateFile(szText, rn GENERIC_READ|GENERIC_WRITE, rn 0, rn NULL, rn OPEN_EXISTING,rn FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,rn NULL);rn rn if (m_hCom == INVALID_HANDLE_VALUE)rn rn return ERR_OPEN_FILE;rn rnrn //设置超时参数rn COMMTIMEOUTS CommTimeOuts;rn GetCommTimeouts(m_hCom, &CommTimeOuts);rnrn //设定读超时rn CommTimeOuts.ReadIntervalTimeout = 5; /* <em>接收</em>字符间最大时间间隔 */rn CommTimeOuts.ReadTotalTimeoutMultiplier = 200;rn CommTimeOuts.ReadTotalTimeoutConstant = 5000; /* 读数据总超时常量 */rnrn //设定写超时rn CommTimeOuts.WriteTotalTimeoutMultiplier = 500;rn CommTimeOuts.WriteTotalTimeoutConstant = 2000;rn if(!SetCommTimeouts(m_hCom, &CommTimeOuts))rn rn CloseCom();rn return ERR_SET_STATE;rn rnrn SetState();rn rn SetupComm(m_hCom, 1024, 1024); //输入缓冲区和输出缓冲区的大小都是1024rn rn PurgeComm(m_hCom, PURGE_TXCLEAR | PURGE_RXCLEAR); /* 清除收/发缓冲区 */ rnrn return ERR_OK;rnrnrnvoid CComMng::CloseCom()rnrn CloseHandle(m_hCom);rn m_hCom = INVALID_HANDLE_VALUE;rnrnrnUINT CComMng::SetState(UINT nBaudRate, BYTE nByteSize, UINT nStopBits, BYTE nParity)rnrn DCB dcb;rn GetCommState(m_hCom, &dcb);rn dcb.BaudRate = nBaudRate;//波特率rn dcb.ByteSize = nByteSize;rn dcb.StopBits= nStopBits;rn dcb.Parity = nParity; /*MARKPARITY, SPACEPARITY;*/rn dcb.fParity = FALSE; /* 禁止奇偶校验 */rn dcb.fBinary = TRUE;rn dcb.fDtrControl = DTR_CONTROL_DISABLE; /* 禁止流量控制 */rn dcb.fRtsControl = RTS_CONTROL_DISABLE;rn dcb.fOutX = 0;rn dcb.fInX = 0;rn dcb.fTXContinueOnXoff = 0;rnrn BOOL bHr = SetCommState(m_hCom, &dcb);//设置状态正确?rn if (!bHr)rn rn //出错了rn CloseCom();rn return ERR_SET_STATE;rn rn return ERR_OK;rnrnrnrn//---------------------------------------------------------rn// 函数作者 : Stiflerrn// 创建日期 : 2008-6-9rn// 版本 : V1.0rn//*********************************************************rn// 函数名称 : CComMng::WriteProc rn// 功能描述 : com的发送线程体rn// 返回类型 : DWORD rn// 注释 : rn// 参数类型 : LPVOID pParamrn// 注释 : rn//---------------------------------------------------------rnDWORD CComMng::WriteProc (LPVOID pParam)rnrn CComMng *pThis = (CComMng *)pParam;rn UINT nFailure = 0; //累计发送失败的次数rn while (true)rn rn if(!pThis->m_hCom)rn rn return ERR_OPEN_FILE;rn rnrn if(nFailure > 2) //3次失败,认为已经断线rn rn return ERR_DISCONNECTED;rn rnrn WaitForSingleObject(pThis->m_hSendEvent, INFINITE);rnrn if(pThis->m_bEndWriteThread)rn rn break;rn rn rn LOCK(pThis->m_cs);rn BYTE *pBuff = new BYTE[SEND_BUFF_SZIE];rn memset(pBuff, 0, SEND_BUFF_SZIE);rn pThis->m_buff.ReadBuff(pBuff, 1); //获取缓冲区中第一个字节,协议中规定第一字节为长度rn BYTE nCmdLen = *pBuff;rnrn //缓冲区内存在一个完整的命令rn if (pThis->m_buff.GetSize() >= nCmdLen)rn rn pThis->m_buff.GetBuff(pBuff, nCmdLen); //获取命令rn DWORD nSuccLen = 0;rn OVERLAPPED oWrite;rn memset(&oWrite, 0, sizeof(oWrite));rn oWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);rn WriteFile(pThis->m_hCom, pBuff, nCmdLen, &nSuccLen, &oWrite);rnrn UINT nRes = WaitForSingleObject(oWrite.hEvent, SEND_TIME_OUT);rn if (nRes == WAIT_TIMEOUT) //如果超时,丢弃这一个命令,失败计数加1rn rn delete []pBuff;rn pBuff = NULL;rn nFailure++;rn continue;rn rn nFailure = 0; //发送成功失败计数清零rn rn elsern rn ResetEvent(pThis->m_hSendEvent);rn rn rn delete []pBuff;rn pBuff = NULL;rn rn return ERR_OK;rnrnrnrn//---------------------------------------------------------rn// 函数作者 : Stiflerrn// 创建日期 : 2008-6-9rn// 版本 : V1.0rn//*********************************************************rn// 函数名称 : CComMng::ReadProc rn// 功能描述 : 读取com的线程体rn// 返回类型 : DWORD rn// 注释 :rn// 参数类型 : LPVOID pParamrn// 注释 : rn//---------------------------------------------------------rnDWORD CComMng::ReadProc (LPVOID pParam)rnrn UINT nFailure = 0; //累计读取失败的次数rn CComMng *pThis = (CComMng *)pParam;rn while(true)rn rn WaitForSingleObject(pThis->m_hRecvEvent, 20);rnrn if (pThis->m_bEndReadThread)rn rn break;rn rnrn BYTE buff[256] = 0;rn DWORD dwRead = 0;rn if(!pThis->m_hCom)rn rn return ERR_OPEN_FILE;rn rn rn OVERLAPPED osRead;rn memset(&osRead, 0, sizeof(osRead));rn osRead.hEvent=CreateEvent(NULL, TRUE, FALSE, NULL); //创建事件rn rn //清除com错误rn COMSTAT ComStat = 0;rn DWORD dwErrorFlags;rn ClearCommError(pThis->m_hCom, &dwErrorFlags, &ComStat);rnrn BOOL bReadStat = ReadFile(pThis->m_hCom, buff, RECV_BUFF_SZIE, &dwRead, &osRead); //在异步操作中,这里无法获取实际读取的字节数rn if (GetLastError() == ERROR_IO_PENDING)rn rn UINT nRes = WaitForSingleObject(osRead.hEvent, RECV_TIME_OUT);rn if (WAIT_TIMEOUT == nRes) //等待超时rn rn nFailure++;rn rn else //<em>接收</em>数据完成rn rn //调用回调函数,将数据发出去。rn GetOverlappedResult(pThis->m_hCom, &osRead, &dwRead, FALSE); //获取实际操作的字节数rn if( dwRead > 0)rn rn pThis->m_pRecvBuff(buff, dwRead, pThis->m_pOwner);rn nFailure = 0; //<em>接收</em>成功后,失败计数清零rn rn rn rn elsern rn GetOverlappedResult(pThis->m_hCom, &osRead, &dwRead, FALSE); //获取实际操作的字节数rn if( dwRead > 0)rn rn pThis->m_pRecvBuff(buff, dwRead, pThis->m_pOwner);rn nFailure = 0; //<em>接收</em>成功后,失败计数清零rn rn rn CloseHandle(osRead.hEvent);rn rn return ERR_OK;rnrnrnvoid CComMng::PostCmd(BYTE *pBuff, UINT nSize)rnrn LOCK(m_cs);rn m_buff.AddBuff(pBuff, nSize);rn SetEvent(m_hSendEvent); //通知发送rn[/code]rnrnrnrnrn-------------------------------------------------rn这个<em>接收</em>线程一直<em>接收</em><em>不到</em>数据,为何?
为什么接收不到参数?
我用的是wampserverrnrnrnrnHTML执行rn rnrnrnrnrnrnrnrn// gogo.php 为啥接<em>不到</em>参数,只输出了aaarnrn
网络编程,接收不到数据
刚开始学网络编程,写了个小程序测试了一下,老是第一次<em>接收</em><em>不到</em>数据,但是就是能<em>接收</em>到结束标志,郁闷。rn一小段代码如下:rnrn 服务端: while(1)rn rn printf("abc\n");rn bzero(buffer2,sizeof(buffer2));rn n=read(pthread->clientsocket,buffer2,sizeof(buffer2));rn printf("read=%d\n",n);rn printf("%s\n",buffer2);rn if(strcmp(buffer2,"quit")==0)rn break;rn rn fwrite(buffer2,n,1,fp);rn rn rn printf("recv over\n");rn fclose(fp);rnrnrn 客服端:rn fd=open(mp.filename,O_RDWR);rn if(fd==-1)rn rn perror("open file error!");rn exit(1);rn rn lseek(fd,0,SEEK_SET);rn bzero(buffer,sizeof(buffer));rn while((n=read(fd,buffer,sizeof(buffer)))>0)rn rn m=write(socket2,buffer,strlen(buffer));rn printf("write=%d\n",m);rn printf("%s\n",buffer);rn sleep(1);rn bzero(buffer,sizeof(buffer));rn rn close(fd);rn bzero(buffer,sizeof(buffer));rn strcpy(buffer,"quit");rn sleep(1);rn write(socket2,buffer,strlen(buffer));rn printf("%s\n",buffer);rn printf("update file over!\n");rnrnrn 客服端终端信息如下:rn Update Files:b.c //输入文件,打印如下rn write=11rn 123456rn 789rnrn quitrn update file over!rnrnrn 服务端终端信息如下:rn abcrn read=4rn quitrn recv over //每次客服端输入文件名,服务端就只打印这四句。rnrnrn 求高手指正一下!
手机短信广播接收不到
收到短信了,广播没有接到,是真机,广播优先级1000 10000都试过了没用,卸载了其他接受短信的程序就OK,肿么办???rn可以参考一下http://wenku.baidu.com/view/226f9dd5b14e852458fb57ba.htmlrn嗯还有就是表面是最大是1000,据说很多程序都设置10000,9999神马的、
主机接收不到数据包
大家好:rn 我编了一个服务器程序,向224.0.0.1这个组播地址发送数据包,客户主机与服务器主机在同一个局域网中,通过集线器连接,但是客户主机没有收到服务器的数据包,请问这是什么原因啊?
idUdpServer 接收不到数据
在ActiveFormX中使用idUdpServerrn//初始化rnwith idUDPServer1.Bindings.Add dornbeginrn IP:='';rn Port:=6013;rnend;rnidUDPServer1.active:=True;rnrn//idUDPServer1UPPRead 事件处理rnshowmessage('hello');rnrn该程序在ie中使用程序打开后rn用天网防火墙观察看到 ie有在UDP 6013端口监听rn当服务端发来数据时候rn天网防火墙发现ie有在UDP 6013端口监听目的指向了rn服务端ip端口也正确 rn但程序没有按设计的那样出提示rn点了一下IE的刷新 发现程序出 'hello' 提示了rn好像ie 不会把数据提交给程序 只在要刷新时一下提交rn这怎么回事rn希望大家帮助
GCDAsyncSocket 接收不到数据
GCDAsyncSocket <em>接收</em><em>不到</em>数据
电脑接收不到数据?
电脑连上网络后,<em>接收</em><em>不到</em>数据,查看IP都是正确的,但是PING不通网关,本机能PING通,是怎么回事?
Java多播接收不到
程序很简单,就是收<em>不到</em>数据,很郁闷,具体请看程序中的注释rn[code=Java]rnpackage Multicast;rnimport java.net.*;rn/**rn * 2011-7-6 13:08:05rn * @author Administratorrn */rnpublic class Sender rn public Sender()rn tryrn InetAddress inet=InetAddress.getByName("228.5.6.7");rn MulticastSocket socket=new MulticastSocket(6789);rn socket.joinGroup(inet);rn //用一个DatagramSocket向该多播组发送数据rn DatagramSocket ds=new DatagramSocket();rn String str=new String("Hello,everyone!");rn ds.send(new DatagramPacket(str.getBytes(),str.length(),inet,6789));rn byte b[]=new byte[1024];rn DatagramPacket dp=new DatagramPacket(b,b.length);rn //该socket<em>接收</em>,可是,收<em>不到</em>rn socket.receive(dp);rn System.out.println(new String(b,0,dp.getLength()));rn catch(Exception e)rn e.printStackTrace();rn rn rn public static void main(String args[])rn new Sender();rn rnrn[/code]
Controller接收不到表单数据
1、实体类Khlx.javarnpackage lankey.model;rnrnimport java.io.Serializable;rnrnpublic class Khlx implements Serializablernrn /**rn * rn */rn private static final long serialVersionUID = 1L;rn private String idx;rn private String namex;rn private String sign;rn private String bz;rn public Khlx() rn rn // TODO Auto-generated constructor stubrn rn public Khlx(String idx, String namex, String sign, String bz) rn super();rn this.idx = idx;rn this.namex = namex;rn this.sign = sign;rn this.bz = bz;rn rn public String getIdx() rn return idx;rn rn public void setIdx(String idx) rn this.idx = idx;rn rn public String getNamex() rn return namex;rn rn public void setNamex(String namex) rn this.namex = namex;rn rn public String getSign() rn return sign;rn rn public void setSign(String sign) rn this.sign = sign;rn rn public String getBz() rn return bz;rn rn public void setBz(String bz) rn this.bz = bz;rn rnrn public static long getSerialversionuid() rn return serialVersionUID;rn rn @Overridern public String toString() rn return "Khlx [idx=" + idx + ", namex=" + namex + ", sign=" + signrn + ", bz=" + bz + "]";rn rn rnrnrnrn2、表单insertKhlx.jsprnrnrnrnrnrnrn rn rn rn 增加表格类型档案rn rn rn rn rn rn rn rn rn rn 编号rn rn rn rn 名称rn rn rn rn 启用标识rn rn rn rn 备注rn rn rn rn rn rn rn rn rn rn rn rn rnrn3、控制器类KhlxController.javarnrnpackage lankey.controller;rnrnimport java.io.IOException;rnimport java.util.Map;rnrnimport javax.servlet.http.HttpServletRequest;rnimport javax.servlet.http.HttpServletResponse;rnimport javax.validation.Valid;rnrnimport lankey.model.Khlx;rnimport lankey.service.KhlxService;rnimport lankey.util.RefererTools;rnrnimport org.springframework.beans.factory.annotation.Autowired;rnimport org.springframework.stereotype.Controller;rnimport org.springframework.validation.BindingResult;rnimport org.springframework.validation.FieldError;rnimport org.springframework.web.bind.annotation.ModelAttribute;rnimport org.springframework.web.bind.annotation.RequestMapping;rnimport org.springframework.web.bind.annotation.RequestMethod;rnimport org.springframework.web.bind.annotation.RequestParam;rnrn@Controllerrnpublic class KhlxController rn @Autowiredrn private KhlxService khlxService;rn @ModelAttributern public void getKhlx(@RequestParam(value="idx",required=false) String idx,Mapmap)rn rn if(idx!=null||!("".equals(idx)))rn rn map.put("khlx", khlxService.getKhlx(idx));rn rn rn @RequestMapping(value="khlxSave",method=RequestMethod.POST )rn public String khlxSave(@ModelAttribute Khlx khlx,HttpServletRequest request)rn rn System.out.println(request.getParameter("namex"));rn khlxService.insertKhlx(khlx);rn return "redirect:/getAllKhlx";rn rn @RequestMapping("addKhlx")rn public String addKhlx (Mapmap)rn rn map.put("khlx", new Khlx());rn return "insertKhlx";rn rnrn4、问题:@RequestMapping(value="khlxSave",method=RequestMethod.POST )rn public String khlxSave(@ModelAttribute Khlx khlx,HttpServletRequest request)中khlx没<em>接收</em>到传过来的类,值为null,但是System.out.println(request.getParameter("namex"));确能打印得出正确值。rnrn
广播接收不到
mreceiver = new MyReceiver();rn IntentFilter filter=new IntentFilter();rn filter.addAction("android.intent.action.PACKAGE_ADDED");rn filter.addDataScheme("package");rn getActivity().registerReceiver(mreceiver, filter);rnrnrnrn class MyReceiver extends BroadcastReceiverrn rnrn @Overridern public void onReceive(Context arg0, Intent arg1) rn // TODO Auto-generated method stubrn Log.i(TAG, "安装成功调用广播");rn initdata();rn madapter.notifyDataSetChanged();rn rn rn rnrn求解释
recvfrom接收不到数据了
在一个<em>接收</em>子线程里面<em>接收</em>下位机上送的数据,如下: rn while (ConnectFlag)rnrn if (pDlg->RecvFlag)rn rn int err = recvfrom(pDlg->socketclient,recvbuf,1000,0,(SOCKADDR*)&addrsv,&lenp);rn rnrn流程:上位机先下发命令给下位机配置参数,下位机一旦收到相应的信息(不是前句话讲的参数命令)就开始上送数据。问题:如果下位机停止上送数据接近一分钟,再次上送数据,recvfrom却<em>接收</em><em>不到</em>数据,从PC端的截包工具已经看到下位机上送了数据且数据格式内容正确,这个时候只有再下发一次命令后,下位机一旦收到相应信息,recvfrom又能收到数据,至少说明<em>接收</em>子线程没有退出。注明:下发命令其实主要就是sendto函数,“截包工具已经看到下位机上送了数据”说明配置参数命令其实已经在下位机了,不明白为什么要再次下发命令一下又才能recvform。rn我把 recvfrom改成非阻塞模式,也是同样的现象。
串口接收不到数据
各位大侠:rn 最近在写一个吊称数据获取程序,通过RS232获取数据,但是吊称跟电脑连接后,C#程序获取<em>不到</em>任何数据,serialPort1_DataReceived事件不能触发,不知道是什么原因?请问怎么样才能<em>接收</em>到串口的数据?我将自个电脑的串口2,3脚短接就能接受到自己发出的数据!rn
后端接收不到数据
@RestController @RequestMapping("/itemsearch") public class ItemSearchController { @Reference private ItemSearchService itemSearchService; @RequestMapping("/search") public Map&lt;St...
PHP表单数据接收不到!!@@
index.phprn rn rn rn rn rn rn rn rn rn rn rn rn rnrnsearch.phprn\n";rn?>rn老是打印您要搜索的关键字不能为空,不知道为什么<em>接收</em><em>不到</em>,php.ini里的 register_globals = onrn哪位大哥帮帮我!@@#
Mscomm接收不到00H
在<em>接收</em>十六进制数据时,00H收<em>不到</em>,缓冲区没有数据读入。怎么回事?例如发的数据是:eb900001只能收到eb9001,请大侠帮忙。rn
qt sqlite for symbian下载
qt symbian sqlite 嵌入式数据库 相关下载链接:[url=//download.csdn.net/download/caikeyter/4561129?utm_source=bbsseo]//download.csdn.net/download/caikeyter/4561129?utm_source=bbsseo[/url]
WEB应用系统开发下载
web应用系统开发,便于大家更好的使用web系统,了解web只是 相关下载链接:[url=//download.csdn.net/download/zwywh/4574519?utm_source=bbsseo]//download.csdn.net/download/zwywh/4574519?utm_source=bbsseo[/url]
RadControls_for_WindowsPhone8_2013_3_1016_DEV下载
telerik出品 RadControls WP8控件包 你值得拥有。 相关下载链接:[url=//download.csdn.net/download/yanxiaodi/6697581?utm_source=bbsseo]//download.csdn.net/download/yanxiaodi/6697581?utm_source=bbsseo[/url]
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数
我们是很有底线的