第五章 Tcp异步通信代码.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档