欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年点对点通信聊天程序 .pdf

    • 资源ID:33405060       资源大小:293.77KB        全文页数:14页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年点对点通信聊天程序 .pdf

    点对点通信聊天程序设计文档:基于 SOCKET 的点对点通信聊天Socket是套接字的意思。在套接字下编程很像打电话的过程,打电话之前先申请一条电话线,假设已接至办公室墙上,则相当于申请一个与其他应用程序通信的输入输出接口,而改程序到底与哪个程序通信,取决于其IP 地址。此时,IP 就相当于我们要拨打的电话号码,如果对方也申请了一个Socket ,我们就可以根据其IP 地址跟对方聊天。1.服务器方服务器等待用户从主窗口发来的启动接收消息过程如下:首先建立自己的套接口。然后建立连接调用 listen()函数,开始倾听,再通过accept ()等待接收连接。Accept ()等待请求队列中的请求,一旦有连接请求来到,就可以建立一个与s 有相同属性的套接口。最后关闭套接口。2.客户方客户等待用户从主窗口发来的发送命令,一旦接收到发送请求,调用函数初始化socket ,窗口函数在收到UNSOCK 消息后,判断是由哪个事件引起的,第一次必然是由连接事件引起的,这样就会执行相同的程序。3.程序流程在寻求连接的过程中可能会出现阻塞,是由于操作系统本身原因或者通信信道被其他程序长名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 时间占用等导致函数无法返回。这是被阻塞函数会不断调用系统函数来保持消息循环的正常运行。Group 函数group 函数是对数据集按照某个字段或者表达式进行分组,获得一组组的集合,然后从每组中取出一个指定字段或者表达式的值,放到单元格中进行扩展,扩展出来的每个单元格都保留了一个指针指向当前的组集,该组集称为当前组。因此在附属单元格中,需要对该组集进行操作时,不需要用任何条件和主单元格关联,如果加设了条件,反倒导致报表引擎还对组集中的记录进行遍历检索。概要设计:完成的程序应实现如下功能:1 服务器端服务2 客户机服务3 点对点的聊天服务。完成后可看到如下客户页面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 只需在对话框里输入信息就可以实现点对点聊天了。附程序源代码:using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Net; using System.Net.Sockets; using System.IO; using System.Threading; using System.Text; namespace 点对点聊天 / / Form1 的摘要说明。 / public class Form1 : System.Windows.Forms.Form private System.Windows.Forms.Label label1; private System.Windows.Forms.Button button1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.TextBox textBox4; private System.Windows.Forms.Button button2; private System.Windows.Forms.Label label4; private System.Windows.Forms.Button button3; private System.Windows.Forms.RichTextBox richTextBox1; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.StatusBar statusBar1; private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.Label label5; private System.Windows.Forms.TextBox textBox5; private System.Windows.Forms.TextBox textBox6; private System.Windows.Forms.Label label6; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - private System.Windows.Forms.Button button4; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.RichTextBox richTextBox2; private System.Windows.Forms.Button button5; private Thread listenthread;/表示监听的线程 private string msg; /要发送的消息 private Socket socket1; /Socket类用于接收和发送信息 private IPEndPoint lep; private System.Windows.Forms.GroupBox groupBox5; /请求连接的节点 / / 必需的设计器变量。 / private System.ComponentModel.Container components = null; public Form1() / / Windows 窗体设计器支持所必需的 / InitializeComponent(); / / TODO: 在 InitializeComponent 调用后添加任何构造函数代码 / / / 清理所有正在使用的资源。 / protected override void Dispose( bool disposing ) if( disposing ) if (components != null) components.Dispose(); base.Dispose( disposing ); #region Windows 窗体设计器生成的代码 / / private void InitializeComponent() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - / textBox1 / this.textBox1.Location = new System.Drawing.Point(8, 48); this.textBox1.Name = textBox1; this.textBox1.Size = new System.Drawing.Size(112, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = ; / / label2 / this.label2.Location = new System.Drawing.Point(8, 72); this.label2.Name = label2; this.label2.Size = new System.Drawing.Size(64, 23); this.label2.TabIndex = 0; this.label2.Text = IP地址 :; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; / / textBox2 / this.textBox2.Location = new System.Drawing.Point(8, 96); this.textBox2.Name = textBox2; this.textBox2.Size = new System.Drawing.Size(112, 21); this.textBox2.TabIndex = 2; this.textBox2.Text = ; / / label3 / this.label3.Anchor = (System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left); this.label3.Location = new System.Drawing.Point(80, 112); this.label3.Name = label3; this.label3.Size = new System.Drawing.Size(64, 23); this.label3.TabIndex = 3; this.label3.Text = 我的昵称 :; this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; / / textBox3 / this.textBox3.Anchor = (System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left); this.textBox3.Location = new System.Drawing.Point(136, 112); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - this.textBox3.Name = textBox3; this.textBox3.Size = new System.Drawing.Size(128, 21); this.textBox3.TabIndex = 4; this.textBox3.Text = ; / / textBox4 / this.textBox4.Location = new System.Drawing.Point(8, 48); this.textBox4.Name = textBox4; this.textBox4.Size = new System.Drawing.Size(120, 21); this.textBox4.TabIndex = 5; this.textBox4.Text = 221.237.165.15; / / button2 / this.button2.Anchor = (System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left); this.button2.Location = new System.Drawing.Point(272, 112); this.button2.Name = button2; this.button2.Size = new System.Drawing.Size(72, 23); this.button2.TabIndex = 6; this.button2.Text = 发送 ; this.button2.Click += new System.EventHandler(this.button2_Click); / / label4 / this.label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.label4.Location = new System.Drawing.Point(8, 16); this.label4.Name = label4; this.label4.Size = new System.Drawing.Size(120, 23); this.label4.TabIndex = 7; this.label4.Text = 服务器 IP:; this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; / / button3 / this.button3.Location = new System.Drawing.Point(8, 48); this.button3.Name = button3; this.button3.Size = new System.Drawing.Size(64, 23); this.button3.TabIndex = 8; this.button3.Text = 开始监听 ; this.button3.Click += new System.EventHandler(this.button3_Click); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - / / richTextBox1 / this.richTextBox1.Anchor = (System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); / textBox6 / this.textBox6.Location = new System.Drawing.Point(80, 80); this.textBox6.Name = textBox6; this.textBox6.Size = new System.Drawing.Size(48, 21); this.textBox6.TabIndex = 5; this.textBox6.Text = ; / / label6 / this.label6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.label6.Location = new System.Drawing.Point(8, 80); this.label6.Name = label6; this.label6.Size = new System.Drawing.Size(64, 23); this.label6.TabIndex = 7; this.label6.Text = 目标端口 :; this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; / / button5 / this.button5.Location = new System.Drawing.Point(8, 120); this.button5.Name = button5; this.button5.Size = new System.Drawing.Size(64, 23); this.button5.TabIndex = 8; this.button5.Text = 请求连接 ; this.button5.Click += new System.EventHandler(this.button5_Click); / / label5 / this.label5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.label5.Location = new System.Drawing.Point(8, 16); this.label5.Name = label5; this.label5.Size = new System.Drawing.Size(64, 23); this.label5.TabIndex = 7; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - this.label5.Text = 监听端口 :; this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; / / textBox5 / this.textBox5.Location = new System.Drawing.Point(80, 16); this.textBox5.Name = textBox5; this.textBox5.Size = new System.Drawing.Size(48, 21); this.textBox5.TabIndex = 5; this.textBox5.Text = ; / / groupBox2 r = (System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right); this.groupBox4.Controls.Add(this.textBox3); this.groupBox4.Controls.Add(this.button4); this.groupBox4.Controls.Add(this.richTextBox1); this.groupBox4.Controls.Add(this.label3); this.groupBox4.Controls.Add(this.button2); this.groupBox4.Location = new System.Drawing.Point(8, 272); this.groupBox4.Name = groupBox4; this.groupBox4.Size = new System.Drawing.Size(352, 144); this.groupBox4.TabIndex = 17; this.groupBox4.TabStop = false; this.groupBox4.Text = 发送窗口 ; ( System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left); this.button4.Location = new System.Drawing.Point(8, 112); this.button4.Name = button4; this.button4.Size = new System.Drawing.Size(64, 23); this.button4.TabIndex = 12; this.button4.Text = 清空消息 ; this.button4.Click += new System.EventHandler(this.button4_Click); / / groupBox3 / this.groupBox3.Anchor = (System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.groupBox3.Controls.Add(this.richTextBox2); this.groupBox3.Location = new System.Drawing.Point(8, 8); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - this.groupBox3.Name = groupBox3; this.groupBox3.Size = new System.Drawing.Size(352, 264); this.groupBox3.TabIndex = 18; this.groupBox3.TabStop = false; this.groupBox3.Text = 聊天记录 ; / / richTextBox2 / this.richTextBox2.Anchor = (System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.richTextBox2.Location = new System.Drawing.Point(8, 16); this.richTextBox2.Name = richTextBox2; this.richTextBox2.Size = new System.Drawing.Size(336, 240); this.richTextBox2.TabIndex = 0; this.richTextBox2.Text = ; / / groupBox5 / this.groupBox5.Controls.Add(this.label5); this.groupBox5.Controls.Add(this.textBox5); this.groupBox5.Controls.Add(this.button3); this.groupBox5.Location = new System.Drawing.Point(368, 184); this.groupBox5.Name = groupBox5; this.groupBox5.Size = new System.Drawing.Size(136, 80); this.groupBox5.TabIndex = 19; this.groupBox5.TabStop = false; this.groupBox5.Text = 监听设置 ; / Form1 / this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(512, 438); this.Controls.Add(this.groupBox5); this.Controls.Add(this.groupBox3); this.Controls.Add(this.groupBox4); this.Controls.Add(this.statusBar1); this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox2); this.MaximumSize = new System.Drawing.Size(520, 472); this.MinimumSize = new System.Drawing.Size(520, 472); this.Name = Form1; this.Text = 点对点聊天 ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - this.Closing += new System.ComponentModel.CancelEventHandler(this.Form1_Closing); this.groupBox1.ResumeLayout(false); this.groupBox2.ResumeLayout(false); this.groupBox4.ResumeLayout(false); this.groupBox3.ResumeLayout(false); this.groupBox5.ResumeLayout(false); this.ResumeLayout(false); #endregion / / 应用程序的主入口点。 / STAThread static void Main() Application.Run(new Form1(); private void listenstart()/监听发入的信息 try while(this.socket1.Connected) /设置一个缓冲区 Byte stream=new Byte1024; socket1.Receive(stream); /将获得的流转化为字符串类型 string message=Encoding.Default.GetString(stream); /this.textBox1.Text=socket1.Available.ToString(); this.richTextBox2.AppendText(message); this.richTextBox2.AppendText( ); catch/(Exception error) if(!this.socket1.Connected) socket1.Close(); button3.Enabled=true; button5.Enabled=true; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - private void button1_Click(object sender, System.EventArgs e) /获取本地主机名称 string host=Dns.GetHostName(); this.textBox1.Text=host; /获取本机IP IPAddress addrs = Dns.Resolve(localhost).AddressList; IPAddress addr = Dns.Resolve(host).AddressList0; /转化为标准的以点分隔的四部分格式 this.textBox2.Text=addr.ToString(); private void button3_Click(object sender, System.EventArgs e) /获得监听端口 int hostport; try hostport=Int32.Parse(this.textBox5.Text); if(hostport65400)hostport=12800; catch hostport=12800; /IPAddress ipAddress = Dns.Resolve(localhost).AddressList0; IPAddress ipAddress=IPAddress.Parse(0.0.0.0); lep = new IPEndPoint(ipAddress,hostport); socket1=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); try socket1.Bind(lep); socket1.Listen(10000); this.statusBar1.Text=等待连接 .; button3.Enabled=false; button5.Enabled=false; Thread watt=new Thread(new ThreadStart(waits); watt.Start(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - catch button3.Enabled=true; private void waits() try socket1=socket1.Accept(); this.statusBar1.Text=已建立连接 ; listenthread=new Thread(new ThreadStart(listenstart); listenthread.Start(); button3.Enabled=false; button5.Enabled=false; catch button3.Enabled=true; button5.Enabled=true; private void statusBar1_TextChanged(object sender, System.EventArgs e) private void button2_Click(object sender, System.EventArgs e) if(socket1.Connected) /将发送的字符串转换成字节数组 msg = +this.richTextBox1.Text; Byte bytes=Encoding.Default.GetBytes(msg); /发送数组 try socket1.Send(bytes,bytes.Length,SocketFlags.None); this.richTextBox1.Text=; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - catch /this.richTextBox2.AppendText(msg); private void button4_Click(object sender, System.EventArgs e) this.richTextBox2.Text=; private void button5_Click(object sender, System.EventArgs e) /获得连接端口 int hostport; try hostport=Int32.Parse(this.textBox6.Text); if(hostport65400)hostport=12800; catch hostport=30000; try /得到需连接的地址 lep = new IPEndPoint(IPAddress.Parse(this.textBox4.Text),hostport); catch(Exception err) MessageBox.Show(err.Message); /构造 socket1 实例 , 并请求连接 socket1= new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); try socket1.Connect(lep); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - if(socket1.Connected)this.statusBar1.Text=连接成功 ; /开始监听 listenthread=new Thread(new ThreadStart(listenstart); listenthread.Start(); button5.Enabled=false; button3.Enabled=false; catch button5.Enabled=true; button3.Enabled=true; private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) try socket1.Close(); if (this.listenthread!=null) /如果线程还处于运行状态就关闭它 if (this.listenthread.ThreadState=ThreadState.Running) this.listenthread.Abort(); catch 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -

    注意事项

    本文(2022年点对点通信聊天程序 .pdf)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开