WinCE Socket.BeginSend()为什么数据发不出去呢?连接没有问题
VS2005, Windows Mobile 6
Connect没有问题,断点调试连接没有问题,
关键是电脑服务端往手机端发数据,手机端能正确接收,
而手机端往电脑服务器端发数据,服务端打断点根本就走不到,也就是接收不到数据.
但手机端BeginSend()方法没有报错,这是怎么回事呢?
代码 客户端发送
服务端事件注册和接收数据代码
各们大牛这是什么原因啊,有点感觉和环境是否有关,因为客户端用同样的代码接收数据是没问题的,就是客户端往服务端数据发不出去,这是什么原因?
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);
}
}
}
各们大牛这是什么原因啊,有点感觉和环境是否有关,因为客户端用同样的代码接收数据是没问题的,就是客户端往服务端数据发不出去,这是什么原因?
...全文
相关推荐
WinCE下Socket编程
- 对于 WinCE 这样的嵌入式平台,资源有限,因此需要对内存和 CPU 资源进行合理管理。- 在编写多线程 Socket 程序时,要注意线程同步问题,避免出现数据竞争或死锁等问题。
C# wince环境下的winform的程序,socket小例子
- 错误处理:处理连接断开、数据传输失败等异常情况。这个示例程序对于学习C#在WinCE环境下的Socket通信非常有帮助,因为它提供了实际操作的代码和运行环境。
WinCE Socket
开发者需要通过`WSAGetLastError()`获取错误代码,并使用适当的错误处理机制来处理这些问题。4.
WINCE_Socket.rar_TCP IP_WinCE tcp客户端_socket wince_wince 网络_wince
**连接服务器**:通过`connect()`函数连接到服务器,需要提供服务器的IP地址和端口号。3. **发送数据**:使用`send()`或`sendto()`函数向服务器发送数据。4.
wince版socket 通信
Socket通信允许WinCE设备与其他设备(如服务器或另一台WinCE设备)进行双向数据传输,常用于远程控制、数据同步、设备监控等场景。


