一.建一个客户端的窗口
1,在类中写一个其他的方法,进而在主方法中调用它,(面向对象的思想);
二.添加TextField和TextView用来显示和发送信息
1,Frame默认类型为BorderLayout,继承Frame的类可以在里面添加控件,控件的位置可以设置,如:BorderLayout.SOUTH;
三.添加窗口关闭的处理
1,继承WindowAdapter类,重写windowClosing方法,窗口方法中添加窗口监听器addWindowListenr;
四.发送信息后在TextView中显示信息内容
getText,setText;
五.写一个server端
1,先new一个ServerSocket,并把accept到client端的ServerSocket赋值给新的Socket;
6.使客户端连上server端;
1,在client端new一个包含server端IP地址和端口的一个Socket;
7.发送信息至server端;
1,拿到client端的Socket,并为其添加输出流,然后在输出流中写字符串并发送。
2,拿到server端的Socket,并为其添加输入流,然后读取输入流中的字符串。
8.使客户端可以发送多条信息并让server端收到;
1,在client连上server端时就建一个输出流,然后在发送字符串处不要关闭输出流,这样便可发送多个字符串;
2,在server端用一个可控制循环来多次接收输入流中的字符串;
9.起一个线程来处理一个客户端和server端的通信,使多个客户端可以一起连接到server端;
1,写一个线程类,然后创建一个对象,并启动它;
2,在线程类中写好连上client端后要做的事情;
3,为其他的事单独写一个方法,然后在main函数中调用这个方法;
10.使server端发送信息给各个客户端;
1,把每个new出来的client都加到集合中去,然后写一个send方法来发送字符串,然后循环调用send方法来发送给每一个client端;
11.客户端接收server端发来的信息;
1,在client端写一个线程来接收server发来的信息,然后启用线程;
12.修复BUG,使程序趋于完美。
注:今天又重新写了一遍这个小项目,整理了一下思路,熟悉了一下编写过程,并对每一步骤做了更详细的解释。