- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCP方式服务器端编程
教学目标
知识目标
掌握TCP方式服务器端编程方法
能力目标
能够运用ServerSocket类进行
服务器端编程
服务器端网络编程
在服务器端程序编程中,由于服务器端实现的是被动等待连接,所以服务器端编程的第一个步骤是监听端口,也就是监听是否有客户端连接到达。实现服务器端监听的代码为:
ServerSocket ss = new ServerSocket(10000);
该代码实现的功能是监听当前计算机的10000号端口,如果在执行该代码时,10000号端口已经被别的程序占用,那么将抛出异常。否则将实现监听。
服务器端编程的第二个步骤是获得连接。该步骤的作用是当有客户端连接到达时,建立一个和客户端连接对应的Socket连 接对象,从而释放客户端连接对于服务器端端口的占用。实现功能就像公司的前台一样,当一个客户到达公司时,会告诉前台我找某某某,前台就通知某某某, 然后就可以继续接待其它客户了。
服务器端网络编程
通过获得连接,使得客户端的连接在服务器端获得了保持,另外使得服务器端的端口释放出来,可以继续等待其它的客户端连接。 实现获得连接的代码是:
Socket socket = ss.accept();
该代码实现的功能是获得当前连接到服务器端的客户端连接。需要说明的是accept和前面IO部分介绍的read方法一样,都是一个阻塞方法, 也就是当无连接时,该方法将阻塞程序的执行,直到连接到达时才执行该行代码。另外获得的连接会在服务器端的该端口注册, 这样以后就可以通过在服务器端的注册信息直接通信,而注册以后服务器端的端口就被释放出来,又可以继续接受其它的连接了。
服务器端网络编程
连接获得以后,后续的编程就和客户端的网络编程类似了,这里获得的Socket类型的连接就和客户端的网络连接一样了,只是服务器端需要首先读取发送过来的数据,然后进行逻辑处理以后再发送给客户端,也就是交换数据的顺序和客户端交换数据的步骤刚好相反。这部分的内容和客户端很类似,所以就不重复了,如果还不熟悉,可以参看下面的示例代码。
最后,在服务器端通信完成以后,关闭服务器端连接。实现的代码为:
ss.close();
服务器端网络编程
这就是基本的TCP类型的服务器端编程步骤。下面以一个简单的echo服务实现为例子,介绍综合使用示例。echo的意思就是“回声”,echo服务器端实现的功能就是将客户端发送的内容再原封不动的反馈给客户端。实现的代码如下:
public class SimpleSocketServer {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null; OutputStream os = null; InputStream is = null;
int port = 10000;//监听端口号
try { //建立连接
serverSocket = new ServerSocket(port);
服务器端网络编程
//获得连接
socket = serverSocket.accept();
//接收客户端发送内容
is = socket.getInputStream();
byte[] b = new byte[1024]; int n = is.read(b);
//输出
System.out.println(客户端发送内容为:
+ new String(b,0,n));
//向客户端发送反馈内容
os = socket.getOutputStream();
os.write(b, 0, n);
} catch (Exception e) { e.printStackTrace(); }
finally{ try{
//关闭流和连接
os.close(); is.close(); socket.close();
serverSocket.close();
}catch(Exception e){}
} } }
服务器端网络编程
在该示例代码中建立了一个监听当前计算机10000号端口的服务器端Socket连接,然后获得客户端发送过来的连接,如果有连接到
您可能关注的文档
- 中华匠艺-宜兴紫砂陶制作技艺 紫砂技术与艺术的辩证关系 紫砂技术与艺术的辩证关系.ppt
- 中华匠艺-宜兴紫砂陶制作技艺 紫砂烧成工艺的演变 紫砂烧成工艺的演变.ppt
- 中华名锦 云锦的花色 云锦的图案 (2).pptx
- GMP 任务二:不同级别的洁净厂房对空气洁净度的要求 任务二:不同级别厂房洁净度要求.ppt
- 中华名锦 云锦的种类 库缎.pptx
- GNSS定位测量 北斗卫星导航定位系统 31课件北斗美国定位系统.pptx
- GNSS定位测量 与信号传播有关的误差 与信号传播有关的误差.pptx
- GSP 9-1 药品销售人员及其管理 9-1 药品销售人员及其管理.PPT.ppt
- 中华优秀传统文化 文学之美:诗词曲赋 wxkj05词帝李煜.ppt
- 中式烹调工艺 八、涮 涮.pptx
- 中式烹调工艺 项目七:风味调配工艺 碱致嫩.ppt
- 中式烹调工艺 项目七:风味调配工艺 酶致嫩.ppt
- Java面向对象程序设计 使用缓冲流读文本文件 使用缓冲流读文本文件.pptx
- 中式烹调工艺 一、花式菜肴组配技能基本知识 烹调师制作的基本程序.pptx
- Java面向对象程序设计 使用缓冲流写文本文件 使用缓冲流写文本文件.pptx
- Java面向对象程序设计 使用字符流读文本文件 使用字符流读文本文件.pptx
- 中式烹调工艺 一、清汤制作 清汤制作.pptx
- Java面向对象程序设计 使用字符流写文本文件 使用字符流写文本文件.pptx
- Java面向对象程序设计 使用字节流读文本文件 使用字节流读文本文件.pptx
- 中兽医 中兽医 温里药基本概念.ppt
最近下载
- 应急预案汇编(综合应急预案、专项应急预案、现场处置方案,水利安全生产标准化)-公司.doc VIP
- 昆明市市政排水管道和附属构筑物设计、安装图集(2013版)(附条文).pdf VIP
- 《GB_T 42361-2023海域使用论证技术导则》专题研究报告深度解读.pptx
- 民航运输服务专业学生的职业生涯规划.pptx VIP
- 拉力士空压机油827MSDS_627864.pdf VIP
- 调味酱研究报告-调味酱项目可行性研究报告(2020-2023年).pptx VIP
- 生涯人物访谈报告——xxx .pdf VIP
- 关于艺术机构课程备案和公示制度等规章制度.pdf VIP
- 小学英语单选题练习(含答案).pdf VIP
- 高教版中职语文基础模块上期中考试试题.doc VIP
原创力文档


文档评论(0)