51CTO下载-Java Socket编程 最简单CS程序示例.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《51CTO下载-Java Socket编程 最简单CS程序示例.pdf》由会员分享,可在线阅读,更多相关《51CTO下载-Java Socket编程 最简单CS程序示例.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaJavaJavaJava SocketSocketSocketSocket CSCSCSCS 示例程序示例程序1 1 1 1 背景介绍背景介绍Java 是随着网络的盛行而逐渐被人认可的,可想而知其网络编程的能力有多强大。本文介绍一个 Java Socket CS 模型的一个简单示例,简单但不低端。程序是在本地模拟 CS 模型,即服务端和客户端两个程序可以相互通信。实现形式是两个程序分别定义好要说的话,然后按顺序交互在终端打印。2 2 2 2 SocketSocket 通信过程通信过程真实中的通信类似 QQ 是两个或多个程序在不同的电脑上,通过互联网交换信息。程序间是通过通过(IP 地址
2、:端口号)的形式来实现互相访问的。那么两个程序在本地又是怎么能互相连接的,又是如何交换信息的?仔细看上图,首先建立监听程序 SeverSocket()来作为服务端,服务端调用accept()方法不断在所设端口监听是否有要求连接的请求。此时建立客户端程序,该客户端是以发送 Socket()套接字的方式建立的。客户端往所设端口去请求服务,如果遇到 accept(),则双方达成连接共识于是建立连接。连上之后,双方是通过发送 socket 套接字来实现交流的。套接字封装了网络通信底层包括协议,端口地址等信息。客户端要发送信息,其次用建立输出流,输出流另外一段是 socket 套接字,只要往该流里面 p
3、rintln()数据,则会自动封装到该套接字里面。发送时,将 socket套接字发送给服务端。服务端收到套接字,从套接字找到携带的信息放入输入流,然后输入流端通过 readLine()就可以直接将信息打印在屏幕上了。此时服务端要往客户端发送信息,过程一样,将信息写入输出流,然后封装成套接字,对方接受套接字,将信息放到输出流,然后就能输出该信息了。套接字起到了封转底层的作用,程序互联变得很容易,而用输入输出流连接中介转接套接字,一是套接字无法直接输出内容,二是通过流的形式输入输出信息,是 Java 推荐的,因为其本身包含大量方法,用起来会非常得心应手。最后,要关闭连接要释放端口等资源。3 3 3
4、 3 示例过程介绍示例过程介绍本段通过具体例子来加深读者对 Socket 通信过程的印象。1)建立服务器 ServerSocket()2)服务器调用 accept()方法来监听 9999 端口。3)建立客户端 Socket,往 9999 端口发送套接字,请求连接。4)服务器 accept()方法收到一个套接字,说是某某程序想要跟服务器建立连接。accept()接受该请求,于是俩程序建立连接。5)现在客户机想给服务器发送一个字符串“你好,我是客户机”。首先客户机将该字符串用 Println()封装到输出流 PrintWriter 里面,PrintWriter 将该信息再封装到套接字 socket
5、 里面。于是再向服务器端口发送套接字。6)服务器端口又接到套接字,将该套接字放到 InputStreamReader 里面解封装,再用 readLine()方法读取里面的字符串,print()到屏幕上面,打印出“你好,我是客户机”。7)服务器想回送客户机一个信息,如“我是服务器,你发来的信息已收到”。同样是将该字符串封装到输出流 PrintWriter 里面,该输出流再封装成套接字 socket,发送给客户端。8)客户端同样是接收该套接字,解封装到输入流 InputStreamReader,然后再从该流里面 readLine()取出信息,print()打印到屏幕,出来“我是服务器,你发来的信息
6、已收到”的信息。如此可实现反复的半双工通信。9)双方用 close()方法释放连接。4 4 4 4 完整代码完整代码服务器端程序服务器端程序(tempServer)(tempServer)5packagepackagepackagepackage com.futeng.temp;6/*7*内容:Java Socket编程示例(futeng)8*制作:futeng#1.0/2012/07319*说明:10*/11importimportimportimport java.io.BufferedReader;12importimportimportimport java.io.InputStrea
7、mReader;13importimportimportimport java.io.PrintWriter;14importimportimportimport .*;1516publicpublicpublicpublic classclassclassclass tempServer 17/*18*服务端Server客户端Client19*20*服务器监听ServerSocekt()21*|22*阻塞,等待客户连接accept()-发送连接请求Socket()23*|24*|25*读取客户端所发送的数据readLine()读取服务端信息readLine()28*|29*关闭连接close
8、()关闭连接close()30*31*/32publicpublicpublicpublic tempServer()3334trytrytrytry35/建立服务器端程序serversocket,并默认不断扫描8888端口。36ServerSocket serversocket=newnewnewnew ServerSocket(8888);37System.out.println(Hi,我是服务器,正在监听8888端口.);3839/Java用Socket套接字封装了底层的协议端口等,换而言之,两个进程都是通过传递套接字来进行通信。40/声明一个Socket类的套接字来存储来往信息41/a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51CTO下载-Java Socket编程 最简单CS程序示例 51 CTO 下载 Java Socket 编程 简单 CS 程序 示例
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内