大家好,我是yiuo,接受了北风狂D网的邀请为大家录制一段视频教程
关于P2P的聊天程序!
我们首先启动.net2003的运行环境
在里面建造一个Windows的项目工程!
首先我们来把聊天程序的界面做一下!
将背景的按网格拖拽去掉,更方便我们进行控件的移动!
我在窗体上面放置了一个textbox的控件,它是用来给用户发出信息的
在窗体上面放置的ListBox控件是用来显示接受来的信息的!
为了美观,我们把控件的背景色设置一下!
恩,现在大家看到的控件就是比较好看了吧!呵呵!
控件的边上显示着边框,我们把它去掉!
恩,我们接着来在里面放置按钮!
恩,按钮拖拽完后。我们来给程序做个登陆界面!
恩,现在基本的界面就完成了!
还有一个问题,当我我们登陆的时候,登陆完成后应该关闭登陆界面!当我们连接的时候从新显示登陆界面!呵呵,刚才忘了往登陆的图片里面放文本框的控件了!
先给控件做个判定检测
检测是,如果对方的IP地址或你的昵称没有输入就会一直停留在当前的界面。若是输入完毕则会关闭(实际上是将他的可见性设为了假)
我们在点击连接的时候应该是从新的让我们的登陆界面显示,由于我做的登陆界面就是一个panel控件,而且在登陆的时候已经把他的可见性设为了假,所以先在要是想显示它只需要将他的可见性变为真即可!我们需要在从新连接的时候把panel控件里面的textbox的内容清空!
恩!来试试!恩,完成!
写个退出!
恩,现在我们进入主题,开始做聊天的方法!
首先,我们先来引入需要的名空间!
我们引入了NET和NET下的套接字的名空间!后面我们还需要用到线程,我在这里一起给写好!
恩,现在我们先来写登陆界面的信息,在登陆的时候我们需要根据用户填写的对方的ip值,来和用户的计算机建立连接!
事件写在表示确定登陆的那个图片控件上!
在这里,我们需要声明几个成员变量!
我声明了一个成员属性 是UdpClient性的qww
它是我们进行连接用的!在qww=new UdpClient();的()里面我们这里只用到他的一个重载方法 ,需要在里面加入对方的IP地址,和端口号(端口号不能和系统的端口号发生冲突!!我在这里就用8877端口)
现在,当我们在登陆的时候,点击表示确定的图片后就会和我们要通话聊天的计算机建立连接!
恩,我们现在继续,接着应该是在我们登陆后,发送信息!
好,我们来实现发送信息!!
所有的信息都是由用户写在textbox控件中的!当点击发送按键的时候进行发送!
我们先在就来写发送的事件!
string vv=this.textBox1.Text;
byte []ass=System.Text.Encoding.UTF8.GetBytes(vv);
这个是将我们要发送的信息进行编码转换!把它转换成utf8,存放在字节数组当中!
qww.send的方法实现发送!
其实现在我们就可以发送了!
但是没有接收方,我先做一个控制台的程序模拟一下接受!
不好意思,刚才电话响了!我们继续!
恩,我们现在来试验一下!
接受的时候出现了问题,恩,我来解决一下!
恩,我们再来试验一下!
我们接受到了发来的信息!
现在,我把我的昵称显示出来!现在显示出来了我的昵称!
恩,发送没有问题,好,我们来写接受!!
因为在你给别人发的同时自己也在接受别人发来的信息!
所以在窗体启动的时候,我们,先把接受的方法打开,为了能实现
在你给别人发信息的同时接受信息的效果,我们来用一个子线程!
恩,开始,写窗体加载事件!
首先声明一个线程!
ThreadStart() ()里面是线程执行的方法,我们需要在里面执行接受信息的方法,所以我先来写接受信息的方法!
IPAddress.Any,0 意思是,可以接受到的ip地址为,所有的ip地址,端口为所有端口
使用Receive方法,接受对方发来的字节数字,存放在另一个字节数组ajj中!现在给ajj进行编码转换!
现在把转换好的字符串,显示到ListBox控件中!
把接受的方法放在线程的执行方法中,并且开始线程!
恩,现在我们可以把自己发送的信息显示到界面上了!!
我先来美化一下界面!
恩,现在好了!
但是有一个问题,因为窗体加载事件只加载一次,所以现在接受的信息也只能接受一次!!
所以,我们要写个循环当窗体事件加载的时候一直接受对方发来的信息!
恩,先在就完完全全的实现了一个简易的点对点的聊天系统!
恩,呵呵,总算是说完了,我认为,自己写的步骤还是比较清晰的呵呵!恩,大家自己动手试试吧,呵呵,我是北风狂D论坛j2se的斑竹
呵呵,对于java和.net都有一点见解,呵呵,如果有什麽问题请到北风狂D论坛来讨论!
恩,对了,又打错了,呵呵,我是j2se互助的斑竹 yiuo!
en!今天就先说到这里吧!
呵呵,!
对了,这个程序是个点对点的聊天系统!可以实现一人对一人,和多人的群聊! 方法就是在对方的textbox控件中你写你的ip地址 如
192.168.1.105 把105改成255,这样就可以使整个局域网实现群聊!
呵呵,我认为这个还是非常的实用的如果你在机房,就可以实现你和其他人的通讯了!呵呵~!还好吧!
大家别忘了上北风狂D论坛发帖啊!如果这个程序遇到什么问题,请到
j2se互助板块发帖留言!我到时候会看的!
恩!
版权所有 北风狂D 制作人 yiuo
写任何网站转载必须经过本站同意
www.beifengkd.com
大家再见!