- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Tcp异步通信代码(c/s):WinFrmTcpServer代码:using System;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;using System.Net;usingSystem.Net.Sockets;usingSystem.Threading;using System.IO;usingSystem.Collections;namespace AsyncTcpServerEx204{publicpartialclassFrmServer : Form {publicFrmServer() {InitializeComponent(); }ArrayList friends = newArrayList();//保存于客户相关的信息列表TcpListener listener; //负责侦听的套接字boolIsStart = false; //指示是否已经启动了侦听//对控件进行调用委托类型和委托方法//在列表中写字符串delegatevoidAppendDelegate(stringstr);AppendDelegateAppendString;//在建立连接时,向下拉列表框中添加客户信息delegatevoidAddDelegate(MyFriendfrd);AddDelegateAddfriend;//在断开连接时,从下拉列表框中删除客户信息delegatevoidRemoveDelegate(MyFriendfrd);RemoveDelegateRemovefriend;privateAsyncCallbackReceiveCallBack;//在列表中写字符串的委托方法privatevoidAppendMethod(stringstr) {lstBoxStatu.Items.Add(str);lstBoxStatu.SelectedIndex = lstBoxStatu.Items.Count - 1;lstBoxStatu.ClearSelected(); }//向下拉框中添加信息的委托方法privatevoidAddMethod(MyFriendfrd) {lock (friends) {friends.Add(frd); }comboBoxClient.Items.Add(frd.socket.RemoteEndPoint.ToString()); }//从下拉列表框中删除信息的委托方法privatevoidRemoveMethod(MyFriendfrd) {inti = friends.IndexOf(frd);comboBoxClient.Items.RemoveAt(i);lock (friends) {friends.Remove(frd); }frd.Dispose(); }privatevoidbtnStart_Click(object sender, EventArgs e) {//服务器已经在其中侦听,则返回if (IsStart) return;//服务器启动侦听IPEndPointlocalEp = newIPEndPoint(Dns.GetHostAddresses(Dns.GetHostName())[1],100);listener = newTcpListener(localEp);listener.Start(10);IsStart = true;lstBoxStatu.Invoke(AppendString, string.Format(服务器已经启动侦听!端点为:{0}。, listener.LocalEndpoint.ToString()));//接受连接的异步调用AsyncCallbackcallBack = newAsyncCallback(AcceptCallBack);listener.BeginAcceptSocket(callBack, listener);this.btnStart.Enabled = false; }privatevoidAcceptCallBack(IAsyncResultar)
您可能关注的文档
- 动画制作发展历史.doc
- 界面划分表格初稿要领.docx
- javahashtable用法.docx
- 存储过程概念.doc
- 第三终端开发营销形式.doc
- 衣柜终端销售实例资料.docx
- 第十三章 计算机组成名词解释.doc
- 更改及设置系统开机启动菜单方法.docx
- 小学一年级数学解决问题资料.doc
- 第十三章 计算机组成原理复习提纲20140520.doc
- Excel数据获取与处理_全套PPT课件.pptx
- Office 2010办公应用立体化教程(微课版)全套PPT课件.pptx
- 办公自动化技术(Windows10+WPSOffice)全套PPT课件.pptx
- 应用文写作教程(慕课版)全套PPT课件.ppt
- Web前端开发任务教程(HTML+CSS+JavaScript+jQuery)全套PPT课件.ppt
- 新媒体运营实战技能(第3版慕课版)全套PPT课件.pptx
- 财经基本技能与出纳实务(第2版)全套PPT课件.ppt
- 企业财务会计(微课版)全套PPT课件.pptx
- 财务管理(微课第3版)全套PPT课件.pptx
- 新网络营销:新工具 新思维 新方法-全套PPT课件.pptx
文档评论(0)