http://blog.csdn.net/furongkang/article/details/7020060
需求:
通过客户端键盘录入用户名,实现登录。
服务端对客户端的发送过来的用户名进行校验。
如果该用户存在,服务端显示用户登录,并回馈给客户端欢迎光临。
如果该用户不存在,服务端显示用户尝试登录,并回馈给客户端,该用户不存在。
另外,客户端最多只能尝试登录三次。
服务端也一样作此限定。
效果图(左图为客户端,右图为服务器端):
思路:
客户端:
1,建立socket服务。
2,读取键盘录入。
3,将录入的一个用户名数据通过socket的输出发出,给服务端。
4,发出后,要读取服务端回馈的信息。
5,判断该信息,如果有欢迎字样表示登录成功,用户名输入结束。
因为操作的是文本,所以可以使用字符流。并加上缓冲提高效率。
服务端:
1,建立socket服务。
2,不断获取客户端对象。
3,将客户端对象封装到单独的线程中。
4,限定判断次数。
5,读取本地用户文件列表,对获取的用户名进行校验。
6,根据校验结果给出响应信息。
完整代码:
总结:其实服务器就是类似这样一种程序,当用户请求服务器的时候,它首先会创建socket服务,这样客户端才能连上,第二步把客户端拿到的对象封装成线程,第三步进行数据的传输,服务端底层就是用的这三个技术socket,多线程,io,每个客户端去请求都会做这三个事情,我们就不用去写它了,服务器提供了更简单的对象让你去用。
服务器的作用就一个,不断的去处理客户端的请求并给客户端的请求有相应的应答。