基本信息
源码名称:C# 使用异步套接字实现一对多文字聊天程序
源码大小:0.13M
文件格式:.zip
开发语言:C#
更新时间:2018-12-27
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 5 元×
微信扫码支付:5 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
使用异步套接字实现一对多文字聊天程序。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading; using System.IO; namespace 异步_client { public partial class Form1 : Form { private Socket mySocket; public Form1() { InitializeComponent(); Control.CheckForIllegalCrossThreadCalls = false; } private void ConnectServer(IAsyncResult ar)//一般普通函数都是通过事件处理函数调用的 { Socket ss = (Socket)ar.AsyncState; try { ss.EndConnect(ar);//结束挂起的异步连接请求 StreamReader sr = new StreamReader(new NetworkStream(ss), System.Text.Encoding.Unicode);//接收信号并判断是否连接成功作用 if (sr.ReadLine().Equals("0")) { MessageBox.Show("对方拒绝通话!"); ss.Close(); this.btconnect.Enabled = true; return; } this.State.Items.Add("与服务器" this.mySocket.RemoteEndPoint.ToString() "连接成功"); this.Text = "client" this.mySocket.LocalEndPoint.ToString();//窗口名称,窗口 TransData td = new TransData(); td.AReceiveVarData(this.mySocket, this.receive); } catch { MessageBox.Show("与服务器连接失败!"); this.btconnect.Enabled = true; } } private void btstop_Click(object sender, EventArgs e) { try { mySocket.Close(); this.State.Items.Add("与服务器断开连接!"); this.btconnect.Enabled = true; } catch { MessageBox.Show("连接尚未开始,断开无效!"); } } private void btconnect_Click_1(object sender, EventArgs e) { this.btconnect.Enabled = false; try { IPHostEntry remoteHost = Dns.GetHostEntry(this.IP.Text); IPAddress remoteIP = remoteHost.AddressList[0]; remoteIP = IPAddress.Parse("127.0.0.1"); IPEndPoint iep = new IPEndPoint(remoteIP, Int32.Parse(this.Port.Text)); this.mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//核心建立连接 this.mySocket.BeginConnect(iep, new AsyncCallback(ConnectServer), this.mySocket); } catch { MessageBox.Show("你输入的服务器或端口号格式不正确,请重新输入!"); this.btconnect.Enabled = true; return; } } private void btsend_Click_1(object sender, EventArgs e) { try { TransData td = new TransData(); td.ASendVarData(this.mySocket, this.send); } catch { MessageBox.Show("尚未与服务器建立连接,发送失败!"); this.btconnect.Enabled = true; } } } }