- 2
- 0
- 约5.11千字
- 约 5页
- 2017-05-04 发布于四川
- 举报
Java讲训之socket学习实例
HYPERLINK / 北京尚学堂提供
事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java SDK提供一些相对简单的Api来完成这些工作.Socket就是其中之一.对于Java而言.这些Api存在与 这个包里面.因此只要导入这个包就可以准备网络编程了.?网络编程的基本模型就是客户机到服务器模型.简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位置.并去建立两者之间的联系..然后完成数据的通讯就可以了.这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端.基于这个简单的模型,就可以进入网络编程啦.?Java对这个模型的支持有很多种Api.而这里我只想介绍有关Socket的编程接口.对于Java而言已经简化了Socket的编程接口.首先我们来讨论有关提供固定位置的服务方是如何建立的.Java提供了ServerSocket来对其进行支持.事实上当你创建该类的一个实力对象并提供一个端口资源你就建立了一个固定位置可以让其他计算机来访问你.
Java代码 ?
ServerSocket?server=new?ServerSocket(6789);??
这里稍微要注意的是端口的分配必须是唯一的.因为端口是为了唯一标识每台计算机唯一服务的.另外端口号是从0~65535之间的,前1024个端口已经被Tcp/Ip 作为保留端口,因此你所分配的端口只能是1024个之后的.好了.我们有了固定位置.现在所需要的就是一根连接线了.该连接线由客户方首先提出要求.因此Java同样提供了一个Socket对象来对其进行支持.只要客户方创建一个Socket的实例对象进行支持就可以了.
Java代码 ?
Socket?client=new?Socket(InetAddress.getLocalHost(),5678);??客户机必须知道有关服务器的IP地址.对于着一点Java也提供了一个相关的类InetAddress 该对象的实例必须通过它的静态方法来提供.它的静态方法主要提供了得到本机IP 和通过名字或IP直接得到InetAddress的方法.?好了.上面的方法基本可以建立一条连线让两台计算机相互交流了.可是数据是如何传输的呢?事实上I/O操作总是和网络编程息息相关的.因为底层的网络是继续数据的.除非远程调用,处理问???的核心在执行上.否则数据的交互还是依赖于IO操作的.所以你也必须导入java.io这个包.java的IO操作也不复杂.它提供了针对于字节流和Unicode的读者和写者,然后也提供了一个缓冲用于数据的读写.?
Java代码 ?
BufferedReader?in=??
new?BufferedReader(new?InputStreamReader(server.getInputStream()));???
PrintWriter?out=new?PrintWriter(server.getOutputStream());???
上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作.而原始的字节流来源于Socket的两个方法.getInputStream()和getOutputStream()方.分别用来得到输入和输出.那么现在有了基本的模型和基本的操作工具.我们可以做一个简单的Socket例程了.?服务方:?
Java代码 ?
import?java.io.*;???
import?.*;???
??
public?class?MyServer?{???
public?static?void?main(String[]?args)?throws?IOException{???
ServerSocket?server=new?ServerSocket(5678);???
Socket?client=server.accept();???
BufferedReader?in=??
new?BufferedReader(new?InputStreamReader(client.getInputStream()));???
PrintWriter?out=new?PrintWriter(client.getOutputStream());???
while(true){???
String?str=in.readLine();???
System.out.println(str);???
out.println(has?receive....);???
out.flush();???
if(str.equals(end))???
break;???
}???
client.cl
您可能关注的文档
- HACCP原理和主要内容.doc
- HACCP和ISO9000质量管理体系的融合.doc
- HACCP计划编写要素.doc
- Hadoop分布式文件系统:结构和设计.doc
- Harris程控交换机故障处理.doc
- hartmodbus各种通讯协议特点优劣.docx
- HBT60-13-90SC开式电控投标文件.doc
- HCRJ048_1999饮食业油烟净化器认定技术条件.doc
- HD2注册表修正全集.doc
- HDB3码制转换C语言实现.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 西方经济学(第三版)许纯祯PPT全套课件.pptx
- 山东科技版劳动实践指导手册五年级第8课传统工艺制作我是非遗小传人扎染 课件.ppt
- 分项工程量清单综合单价分析表.xls VIP
- 《智慧养老模式在养老服务中的技术创新与产业协同研究》教学研究课题报告.docx
- 人教版(2024)八年级上册英语Unit 8 Let's Communicate! 教案(共6课时) .pdf
- 3512B柴油机零件手册.pdf VIP
- (新教材)2026年春期教科版二年级下册科学教学计划及进度表.pdf
- BIQS2.0 进阶版学习教材V4.0.pdf VIP
- 作物育种学(刘裕强)第十四章 群体改良与轮回选择.ppt VIP
- 2024茂名市电白区电城镇社区工作者招聘考试试题.docx VIP
原创力文档

文档评论(0)