虹猫云课堂:基于TCP实现网络聊天室
虹猫云课堂:基于TCP实现网络聊天室
虹猫学园教学:刘老师
一.TCP编程
TCP连接时面向连接,可靠的,有序的,以字节流的方式发送数据。
*基于TCP协议实现网络的类:
客户端的Socket类
服务的ServerSocket类
*TCP通信过程:
1.客户端创建Socket通信对象,指定服务器的IP地址和顿口号;
2.获取Socket输出流对象OutputSteam,并且发送请求信息;
3.服务器通过accpet()方法侦听客户端的连接,当侦听到客户端的连接时,则获取相应的Socket对象;
4.客户端获取输入流对象,读取请求信息;
5.客户端获取输出流对象,响应信息;6.关闭socket释放相关资源。
二.多线程
如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为“多线程”。
多个线程交替占用CPU资源,而非真正的并行执行
*多线程的实现方式:
-1.继承java.lang.Thread类
-2.实现java.lang.Runnable接口
*案例分析:
1.服务器接收某个客户端的请求同时,也要求能接收其他客户端请求。
服务器使用多线程,实现线程多开。
类似于10086客服的原理。
2.要实现本地主机,客户端多开,则使用多线程。
3.客户端发送信息和接收信息要互补影响,则发现信息一个线程,接收信息一个线程,接收信息和发送信息交替占用CPU资源。
4.实现群聊,服务器实现信息转发给所有的客户端,则需要定义一个集合保存所有的Socket对象,并且需要考虑线程安全。
重点代码展示
文章来源:虹猫学园 www.hongmaoxueyuan.com