Java Socket 编程学习笔记(一)

王朝学院·作者佚名  2016-05-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

java Socket 编程学习笔记(一)最近面试的时候面试官问了我好几次关于Socket编程的知识,QAQ。一直没有深入学习过网络编程的内容。今天去图书馆借了一本孙卫琴老师的网络编程的书,这几周下了决心要好好学学。

Socket是什么Socket一般翻译成中文叫套接字,wiki是这么说的,network socket 是通过计算机网络的进程间通信(ipC)的端点。现在大部分的OS都实现了socket interface,也就是我们说的Socket API。Socket API简单来说就是把下层的数据进行一封装,然后上层(应用层)利用API来进行与远程主机连接。是不是有点像Socket原来的意思呢(插座)? Java 中套接字主要有三个类,分别是ServerSocket,Socket和DatagramSocket类,前两个是我今天要说的重点,都是建立在TCP协议的基础上,DatagramSocket是建立在UDP协议的基础上的。而且我们的Socket编程也是基于C/S通信模式的,那我再给大家科普一下这个C/S是什么鬼。

C/S通信模式是什么大名客户端-服务器通信模式(client-server),和B/S(browser-server)一起是目前主流的通信模式,C/S结构是酱紫:C/S大致步骤是酱紫:

客户端向服务器发送请求,告诉服务器"我想干什么"。服务器端接受到了客户端的请求,对请求进行分析,知道了客户端"想干什么",然后做出相应的操作来处理客户端的请求。服务器端完成了操作之后,会向客户端发送一个响应,告诉客户端"劳资已经麻利的干完事了,还要干嘛",等待客户端的之后的请求。客户端接受到服务器端的响应,并根据响应决定是否还要发送请求。我们今天的程序就是基于C/S来编写的,而且是在TCP/IP协议的基础上。

服务器和客户端的socket通信过程图中已经很清楚的说明了Java中服务器端和客户端的通信方式。实现的程序:客户端访问host为"localhost"(也就是127.0.0.1,已经在hosts文件里面有了),port为8000的服务器,访问成功后向其发送任意字符串,服务器端接受到来自客户端的字符串之后向客户端发送Echo:前缀的字符串,若客户端发送的字符串为bye,则服务器与客户端的 socket关闭。EchoSocket.javaEchoService.java参考的链接:Network socketTCP协议客户端服务器模式

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航