首先,程序运行后,用户得先按下“开始监听”按钮,按钮相应事件后,程序就进入了监听状态,状态栏有相应的显示。这样,本机就相当于“服务器/客户机”模式中的服务器了,其他计算机可以连接到本机并向本机发送消息。其他计算机通过该程序连接到本机是通过IP地址来实现的,C#对网络编程有很好的支持,所以程序员的工作量是比较小的。如此,一台计算机可以向另一台发送消息了。然而,这是个P2P程序,所以只要另一台计算机的用户也按下"开始监听"按钮,那台计算机也成了这台计算机的服务器了。于是就实现了消息互发功能,然而真正的服务器是不存在的,每台计算机都是服务器,每台计算机同时也是客户机,这就体现了P2P技术的"非中心化"原则。
程序主要用到了一个Listen()函数和一个Send()函数。前者实现程序的监听功能,函数实现如下:
private void Listen(){ try { tcpl = new TcpListener(5656); tcpl.Start(); statusBar1.Text = "正在监听..."; while(listenerRun) { Socket s = tcpl.AcceptSocket(); Byte[] stream = new Byte[80]; int i=s.Receive(stream) ; string message =System.Text.Encoding.UTF8.GetString(stream); richTextBox1.AppendText(message); } } catch(System.Security.SecurityException) { MessageBox.Show("防火墙安全错误!","错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch(Exception) { statusBar1.Text = "已停止监听!"; }}
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18