silverlight + socket 怎么得到 返回值?

该昵称已被占用_ 2011-03-08 01:06:02
如题: 谢谢~~~



void A()
{
string message="test";
SendCommandAndGetMessage(message)
//这里怎么得到socketArg_Completed里的消息strText?

}
public void SendCommandAndGetMessage(string message)
{
clientSocket = new System.Net.Sockets.Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs()
{
RemoteEndPoint = new IPEndPoint(IPAddress.Parse(hostIP), port)
};
socketEventArg.Completed += new EventHandler<SocketAsyncEventArgs>(socketEventArg_Completed);
clientSocket.ConnectAsync(socketEventArg);
}
void socketEventArg_Completed(object sender, SocketAsyncEventArgs e)
{ //连接成功后 开始发送
.......
socketArg.Completed += new EventHandler<SocketAsyncEventArgs>(socketArg_Completed);
}

void socketArg_Completed(object sender, SocketAsyncEventArgs e)//事件
{
byte[] byteReceive = e.Buffer;
string strText = System.Text.Encoding.UTF8.GetString(byteReceive, 0, byteReceive.Length).ToString();
//这里面取得了异步返回的信息,strText
}





...全文
66 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
passself 2011-03-09
  • 打赏
  • 举报
回复
楼主定义函数的时候return,调用不就有返回值了吗
dui_cky 2011-03-09
  • 打赏
  • 举报
回复

你是说给出值的时候会报错对不 ? 因为你开的是线程,线程资源会被保护起来,
lz需要使用专门的方法把返回值给透到界面主线程中才能取值。

需要使用System.Threading.SynchronizationContext 或者 Dispatcher.BeginInvoke 类来将信息透到主线程。
jv9 2011-03-08
  • 打赏
  • 举报
回复
不是很明白楼主的意思,能详细说说需求么?

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧