WinCE Socket.BeginSend()为什么数据发不出去呢?连接没有问题

寒江易雪_王孙 寒江易雪_王孙 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
VS2005, Windows Mobile 6
Connect没有问题,断点调试连接没有问题,
关键是电脑服务端往手机端发数据,手机端能正确接收,
而手机端往电脑服务器端发数据,服务端打断点根本就走不到,也就是接收不到数据.
但手机端BeginSend()方法没有报错,这是怎么回事呢?

代码 客户端发送

public void ASend(byte[] SendData)
{
if (SendData == null)
{
return;
}
try
{
mSocket.BeginSend(SendData, 0, SendData.Length, 0, new AsyncCallback(SendCallBack), mSocket);
}
catch (Exception ex)
{
if (onClosed != null)//发送出现异常,则执行onClosed委托事件,
{
onClosed(ID, "在线Socket发送数据出错" + ex.Message);
}
}
}



服务端事件注册和接收数据代码

private void TheListener_OnAccept(Maunite.Common.AsySocket AcceptedSocket)
{
AcceptedSocket.OnStringDataAccept += new Maunite.Common.StringDataAcceptHandler(Accept_OnStringDataAccept);//注册接收在线消息的事件
AcceptedSocket.OnClosed += new Maunite.Common.AsySocketClosedEventHandler(Accept_OnClosed);//注册监听在线消息关闭的事件

try
{
AcceptedSocket.BeginAcceptData();//这个原型代码在下面
}
catch (ArgumentNullException ex)
{
//
}
//添加客户端
theClient.Add(AcceptedSocket.ID, AcceptedSocket);
}
private void Accept_OnStringDataAccept(string AccepterID, string AcceptData)
{
MsgRef msgref = new MsgRef(ReceiveMessage);//MsgRef是申明的委托
this.BeginInvoke(msgref, new object[] { AcceptData });
}
private void ReceiveMessage(string id, string msg)
{
try
{
string[] msgList = msg.Split('|');
if (msg.Length < 1)
{
return;
}
//code
}
}
//BeginAccept原型
public void BeginAcceptData()
{
try
{
//开始接收数据
StateObject state = new StateObject();
state.workSocket = mSocket;
mSocket.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state);
}
catch (SocketException ex)//
{
if (onClosed != null)
{
onClosed(ID, "在线Socket发送数据出错" + ex.Message);
}
}
}



各们大牛这是什么原因啊,有点感觉和环境是否有关,因为客户端用同样的代码接收数据是没问题的,就是客户端往服务端数据发不出去,这是什么原因?
...全文
评论 7
收藏 已收藏
分享
返回顶部