昨天晚上上完了客户端程序的编写,左哥给大家布置了一个作业————编写一个有界面的客户端。
我用今天晚上的时间来把这个作业做完了,整体来说,这个客户端界面不难写,只是其中的逻辑需要去好好理清。
首先,我创建了一个项目,然后我即学即用,把昨天学到的只是运用起来,将代码分成四个包去管理,common包:存放工具类,用于存放一些公用的函数。control包:存放逻辑控制类的包,用于存放程序的核心代码。dao包:用于存放数据或者模型。view包:用于存放可视化界面类的包。
如下图所示:
我把聊天界面客户端的代码框架大致构建了出来,要分为四个类:一个存放在view包里面的MyClientFrame类:用于构建一个聊天界面。
窗口需要有标题,两个标签,三个文本框,两个按钮,一个文本域。
这些参数变量除了两个标签之外,其他的都要传入动作监听器里面去监听的。
创建好的窗口界面:
如下图:
聊天窗口大致需要的功能就这样出来。
窗口出来后就要对按钮,文本框和文本域进行监听。
下一个要编写的类毫无疑问就是监听器类了,监听器类的要执行的任务是监听两个按钮。
第一个链接按钮就要创建一个客户端对象,获取文本框的内容然后输入给Socket对象的构造函数中,这就是链接按钮的功能。
第二个发送按钮要执行的功能是获取文本框内的字符串发送给服务器。
上述就是监听器要执行的监听功能。
编写完了监听器类,第三个类就是客户端类,客户端要做的是创建一个Socket对象,接收服务器的IP和端口号,创建输入输出流,然后用一个线程来执行死循环接收服务器发送过来的信息。
最后一个是工具类,放在common包中去,要实现的是send()和get()函数
send()要实现的功能是从客户端发送信息去服务器中。
get()的功能恰好相反,要从服务器中获取信息。
这就是客户端的框架,框架搭建好了之后,我就开始编写代码了。
以下的图是测试结果:
</