提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、需求内容: TCP实现并发访问
这篇文章主要讲如何使用TCP实现一个简单的多并发,也就是说需要实现多个客户端可以同时访问服务端,而且服务端可以及时作出响应,并返回数据到用户.
具体内容就是写一个登陆验证,实现多个用户同时登陆服务端时,服务端可以在有用户访问时可以同时接收其它用户的请求,也就是并发.对用户输入的用户名和密码进行验证后返回给客户端登陆结果.
二、需求分析
根据要求需要实现多个用户的登陆验证,那么就需要实现多线程来保证每个客户端都可以单独访问服务端,而且服务端可以在线程空置的情况下去处理其他客户端的请求.这样就可以实现并发了.
多线程的具体实现就是单独写一个登录的线程,每次客户端访问服务端的时候,服务端都会创建一个新的线程,把获得的服务端Socket对象传到线程当中去,让登录线程去处理请求. 这时服务端相当于是一个接待客户的角色,具体实现客户的需求交给线程去做.
需要注意的是,多个用户登录的账户名和密码都是不同的,也就是我们不能使用实现Runnable接口的方法创建登录线程,因为这种方法会共享属性,而需要使用继承Thread类来创建登录线程.
根据要求每个登录的用户我们可以把它看做一个对象,我们可以把它的账户名和密码序列化为用户对象,然后客户端把这个对象传给服务端,服务端进行反序列化获得属性值后即可验证客户端的账户名密码是否正确.
所以我们还要建一个User用户类,并且让其实现Serializable接口,设置它的序列化ID,这样就可以将它封装为对象传输了.
2.实现流程
(1)定义用户类
根据前边的需求分析,我们需要定义一个可以实现序