- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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
- Haier海尔413升风冷变频多门冰箱 BCD-413WGHFD1BSJU1(白)说明书用户手册.pdf
- Siemens西门子工业抽屉式断路器主回路后垂直连接 抽屉式断路器主回路后垂直连接使用手册.pdf
- Samsung三星智能佩戴设备 Galaxy Fit3安全手册.pdf
- Samsung三星滚筒洗衣机 AI神 黑钻热泵洗烘旗舰 WD18DB8995BZSC使用手册.pdf
- Sakura樱花消毒柜 保洁柜消毒柜 SCQ-130D6用户手册说明书.pdf
- Hifiman头领科技ARYA UNVEILED说明书用户手册.pdf
- Siemens西门子工业抽屉式主回路连接前置端子 支撑件 抽屉式主回路连接前置端子 支撑件使用手册.pdf
- Siemens西门子工业中性线的外部电流传感器 中性线的外部电流传感器使用手册.pdf
- Siemens西门子工业电子脱扣单元 电子脱扣单元使用手册.pdf
- Razer雷蛇Playstation 专用雷蛇战锤狂鲨极速版 RZ12-038203 用户指南 (简体中文)说明书用户手册.pdf
文档评论(0)