beginReceive 懂得讲下初学C#

weixin_43936063 2019-04-11 09:44:08
socketObject.BeginReceive(objectState.buffer, 0,
ReseiveDataStruct.bufferSize, SocketFlags.None,
new AsyncCallback(ReceiveData_CallBack), objectState);
csdn看的一头雾水似懂非懂
1 objectState.buffer, 0,
2 ReseiveDataStruct.bufferSize, SocketFlags.None,
3 new AsyncCallback(ReceiveData_CallBack), objectState);




...全文
218 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
初学是无法靠技术论坛来免费套取知识的,应该正规学习基础课程,例如计算机原理等等,找(各种课程)正规的教程、找学校学习。
weixin_43936063 2019-04-14
  • 打赏
  • 举报
回复
Int32 什么意思
weixin_43936063 2019-04-14
  • 打赏
  • 举报
回复
帮助看了下页没具体介绍!
Int32 什么意思
值得按位组合 什么意思
xian_wwq 2019-04-14
  • 打赏
  • 举报
回复
楼上大佬们都说了,基础得打牢
如果搞不懂socket异步模式,先学会socket同步模式,
搞清楚基本的流程。
就这一个函数知识点也不少:
Buffer分配;位操作;委托(回调);参数传递等
wanghui0380 2019-04-14
  • 打赏
  • 举报
回复
条件.白 | 条件.富 | 条件.美 合起来就是 “白富美” 话说这行怎么了,基础没学完,就去玩sokect和异步了。这领导得薅多少头发才能调教出来啊
threenewbee 2019-04-13
  • 打赏
  • 举报
回复
引用 5 楼 weixin_43936063 的回复:
看了半天不明白 有人会么 Int32 什么意思 值得按位组合 什么意思
比如说你有5个flag(你可以理解为5个开关选项) 用一个整数的二进制表示 (前面的0省略,只看最后5位)xxxxx 如果所有开关都是false,那么就是00000 = 0 如果第一个开关是true,就是00001 = 1 第二个开关true就是00010 = 2 ... 如果第一个第二个同时true,就是00011 = 3 如果第一个第三个true其它全是false,那么就是00101 = 5 ... 全部都true,就是11111 = 31
  • 打赏
  • 举报
回复
这些很基础的知识都可以在上述网页中找到资料自己学,这论坛不可能没人会,为什么不说呢,有些是要自己去学的。
weixin_43936063 2019-04-13
  • 打赏
  • 举报
回复
看了半天不明白

有人会么
Int32 什么意思
值得按位组合 什么意思
weixin_43936063 2019-04-13
  • 打赏
  • 举报
回复
有人会么
Int32 什么意思
值得按位组合 什么意思
weixin_43936063 2019-04-11
  • 打赏
  • 举报
回复
Int32 什么意思
值得按位组合 什么意思
正怒月神 2019-04-11
  • 打赏
  • 举报
回复
(注意使用前先将IP改为自己的IP或127.0.0.1) 本软件是使用套接字、ReceiveCallBack(IAsyncResult AR)函数为例的客服实例,修正了关闭客户端会导致异常的Bug;并且还是一个RichTextBox颜色使用的范例,不同的事件使用不同的颜色:如用户登录用红色、用户名用绿色、聊天内容用黑色^_^! 代码附赠全套注释,帮助初学者学习使用。 下面是核心代码 private void ReceiveCallBack(IAsyncResult AR) { try { DateTime dt = DateTime.Now; //如果服务器突然关闭后,客户端还坚持与之连接就会弹出异常; //检查是否套接字还连接上就可以避免这一问题。 if (!ClientSocket.Connected) { return; } //挂起AR,独占的使用AR来接收传过来的内容 int REnd = ClientSocket.EndReceive(AR); string StrOfREnd=Encoding.Unicode.GetString(MsgBuffer, 0, REnd); //截断的传输过来的字符串,"\n"前的是用户名 "\n"后的是聊天的内容 string UsersName = StrOfREnd.Substring(0, StrOfREnd.LastIndexOf("\n")); string Content = StrOfREnd.Substring(StrOfREnd.LastIndexOf("\n")+1); string Login=StrOfREnd.Substring(0,2); //MessageBox.Show("缓存中的内容:" + StrOfREnd + "\n" + "截断的用户名:" + UsersName + "\n" + "截断的内容:" + Content); if (Login != "登录") { //第一个字符不为“登陆” int oldlenth = tb_RecieveMsg.TextLength; this.tb_RecieveMsg.Select(oldlenth, 0); this.tb_RecieveMsg.SelectionColor = Color.Green; string str = Encoding.Unicode.GetString(MsgBuffer, 0, REnd); str = str.Substring(1, str.Length - 1); //用户使用绿色字体 this.tb_RecieveMsg.AppendText(" " + string.Format("{0:T}", dt) + " " + "用户:" + UsersName + "说:" + "\r\n"); this.tb_RecieveMsg.SelectionColor = Color.Black; this.tb_RecieveMsg.AppendText(" " + Content + "\r\n"); this.tb_RecieveMsg.AppendText("\r\n"); } else {

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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