当前位置: 首页 > news >正文

网站开发与设计培训网站制作教程

网站开发与设计培训,网站制作教程,汉沽做网站,做推广哪个网站最热门目录 一、认识相关API 1)ServerSocket 2)Socket 二、TCP字节流套接字通信模型概述 三、回显客户端-服务器 1)服务器代码 2)客户端代码 一、认识相关API 1)ServerSocket ServerSocket 常用构造方法ServerSocke…

目录

一、认识相关API

1)ServerSocket

2)Socket

二、TCP字节流套接字通信模型概述

三、回显客户端-服务器

1)服务器代码

2)客户端代码


一、认识相关API

1)ServerSocket

ServerSocket 常用构造方法
ServerSocket(int port)创建使用TCP协议的Scoket套接字,绑定本机指定端口(通常用于服务器)。
ServerSocket 常用方法
Socket accept()开始监听指定端口(端口在创建时绑定)。没有客户端连接时就阻塞,有客户端连接就返回一个服务端的Socket对象,并基于该Socket建立与客户端的连接。
void close()关闭ServerSocket套接字。

2)Socket

Socket 常用构造方法
Socket(String host, int port)创建一个客户端流套接字Socket,并与对应的主机上的对应端口进程建立连接。
Socket 常用方法
InetAddress getInetAddress()返回套接字连接的对端地址。
int getPort()返回套接字连接的对端端口。
InetAddress getLocalAddress()返回套接字连接的本地地址。
int getLocalPort()返回套接字连接的本地端口。
InputStream getInputStream()返回该套接字的输入流。
OutputStream getOutputStream()返回该套接字的输出流。
void close()关闭Socket套接字。

二、TCP字节流套接字通信模型概述

TCP协议具有有连接,面向字节流的特征。在通信之初,通信双方会先建立连接,并保存对端信息。通信连接的建立由系统内核完成,不需要代码干预。
TCP通信,使用ServerSocket类在服务端创建TCPSocket,并获取与客户端的连接。使用Socket类分别在客户端和服务端保存对端信息,并用于与对端的数据交互。
TCP通信流程:服务端客户端建立连接 -> 客户端构造请求->发出请求 -> 服务器接收请求->解析请求->处理请求->构造响应->返回响应->客户端接收响应->解析响应->处理响应

三、回显客户端-服务器

1)服务器代码

public class TCP_Echo_Server {private ServerSocket serverSocket = null;public TCP_Echo_Server(int port) throws IOException {serverSocket = new ServerSocket(port);}public void start() throws IOException {System.out.println("服务器启动!");//创建线程池;ExecutorService executorService = Executors.newCachedThreadPool();while (true){//获得连接;Socket socket = serverSocket.accept();//添加任务,每获得一个连接就使用一个线程去执行accpetConnection方法;executorService.submit(new Runnable() {@Overridepublic void run() {accpetConnection(socket);}});}}private void accpetConnection(Socket socket){System.out.printf("客户端上线:[%s,%d]\n",socket.getInetAddress(),socket.getPort());//TCP传输的是字节流,创建两个流对象用于获得Socket的输入流和输出流;try(InputStream is = socket.getInputStream();OutputStream os = socket.getOutputStream()){//使用Scanner在流中读取并翻译字节;Scanner sc = new Scanner(is);//用于将获取到的输出流封装成PrintWriter;PrintWriter printWriter = new PrintWriter(os);while (true){//判断如果没有后续数据了,就退出;if (!sc.hasNext()){System.out.printf("客户端下线:[%s,%d]\n",socket.getInetAddress(),socket.getPort());break;}//获得请求;String request = sc.next();//构造响应;String response = process(request);//将响应写入Socket的输出流中;printWriter.println(response);//刷新缓冲区,确保响应及时发送;printWriter.flush();//打印日志;System.out.printf("[%s,%d] req=%s res=%s\n",socket.getInetAddress(),socket.getPort(),request,response);}}catch (IOException e) {e.printStackTrace();}finally {try {//关闭Socket文件资源;socket.close();} catch (IOException e) {e.printStackTrace();}}}private String process(String request) {return request;}public static void main(String[] args) throws IOException {TCP_Echo_Server server = new TCP_Echo_Server(9090);server.start();}
}

2)客户端代码

public class TCP_Echo_Client {private Socket clientSocket = null;public TCP_Echo_Client(String serverIP,int serverport) throws IOException {//根据指定的服务器地址和端口号构建客户端套接字;clientSocket = new Socket(serverIP,serverport);}public void start(){System.out.println("成功连接!");//TCP传输的是字节流,创建两个流对象用于获得Socket的输入流和输出流;try(InputStream is = clientSocket.getInputStream();OutputStream os = clientSocket.getOutputStream();){//创建两个Scanner对象,分别用于从控制台输入请求和从输入流获得响应;Scanner ossc = new Scanner(System.in);Scanner issc = new Scanner(is);//用于将输出流封装成PrintWriter;PrintWriter printWriter = new PrintWriter(os);while (true){//输入请求;System.out.print("->");String request = ossc.next();//构造请求的字节流,并写入Socket的输出流中printWriter.println(request);//刷新缓冲区,确保请求及时发送;printWriter.flush();//获取响应;String response = issc.next();//打印响应;System.out.println(response);}} catch (IOException e) {e.printStackTrace();}finally {try {clientSocket.close();} catch (IOException e) {e.printStackTrace();}}}public static void main(String[] args) throws IOException {TCP_Echo_Client client = new TCP_Echo_Client("127.0.0.1",9090);client.start();}
}

阅读指针 -> 《⽹络编程理论基础 -- TCP/IP协议体系》

链接生成中..........


文章转载自:
http://dinncoparridge.bpmz.cn
http://dinncopurveyance.bpmz.cn
http://dinncotardiness.bpmz.cn
http://dinncojudas.bpmz.cn
http://dinncoperdition.bpmz.cn
http://dinncorefix.bpmz.cn
http://dinncokathiawar.bpmz.cn
http://dinncomonandry.bpmz.cn
http://dinncocareenage.bpmz.cn
http://dinncoallophone.bpmz.cn
http://dinncotelamon.bpmz.cn
http://dinncohoppergrass.bpmz.cn
http://dinncolistless.bpmz.cn
http://dinncoast.bpmz.cn
http://dinncosubvariety.bpmz.cn
http://dinncosuperclass.bpmz.cn
http://dinncoleges.bpmz.cn
http://dinncocrematorium.bpmz.cn
http://dinncosidehead.bpmz.cn
http://dinncoserjeant.bpmz.cn
http://dinncofeatherbedding.bpmz.cn
http://dinncoyaqui.bpmz.cn
http://dinncorangey.bpmz.cn
http://dinncoshall.bpmz.cn
http://dinncogeocide.bpmz.cn
http://dinncoboudicca.bpmz.cn
http://dinncokastelorrizon.bpmz.cn
http://dinncopickaback.bpmz.cn
http://dinncospellbound.bpmz.cn
http://dinncopyrocatechin.bpmz.cn
http://dinncoundersecretariat.bpmz.cn
http://dinncosemiautobiographical.bpmz.cn
http://dinncolive.bpmz.cn
http://dinncobifurcated.bpmz.cn
http://dinncomesocyclone.bpmz.cn
http://dinncosemirevolution.bpmz.cn
http://dinncotheopathetic.bpmz.cn
http://dinncopodophyllum.bpmz.cn
http://dinncodragsman.bpmz.cn
http://dinncoshiver.bpmz.cn
http://dinncobullnecked.bpmz.cn
http://dinncolesbos.bpmz.cn
http://dinncorepudiation.bpmz.cn
http://dinncofebrifacient.bpmz.cn
http://dinncocabinetmaker.bpmz.cn
http://dinncoanthrosphere.bpmz.cn
http://dinncocoolly.bpmz.cn
http://dinncoenchant.bpmz.cn
http://dinncotequila.bpmz.cn
http://dinncoaspiration.bpmz.cn
http://dinncopolynuclear.bpmz.cn
http://dinncocasava.bpmz.cn
http://dinncoarequipa.bpmz.cn
http://dinncowidowhood.bpmz.cn
http://dinncosmashup.bpmz.cn
http://dinncocalesa.bpmz.cn
http://dinncogripsack.bpmz.cn
http://dinncostallage.bpmz.cn
http://dinncobitumen.bpmz.cn
http://dinncoarum.bpmz.cn
http://dinncooctopodes.bpmz.cn
http://dinncomonopropellant.bpmz.cn
http://dinncopentazocine.bpmz.cn
http://dinncoannals.bpmz.cn
http://dinncoluminaria.bpmz.cn
http://dinncofelly.bpmz.cn
http://dinncosceneshifter.bpmz.cn
http://dinncoascender.bpmz.cn
http://dinncodetour.bpmz.cn
http://dinncovcd.bpmz.cn
http://dinncoacting.bpmz.cn
http://dinncocooperationist.bpmz.cn
http://dinncoprag.bpmz.cn
http://dinncodigitation.bpmz.cn
http://dinncozonerefine.bpmz.cn
http://dinncooligopoly.bpmz.cn
http://dinncocardiopathy.bpmz.cn
http://dinncocompasses.bpmz.cn
http://dinncomarabou.bpmz.cn
http://dinncoaeschylus.bpmz.cn
http://dinncosss.bpmz.cn
http://dinncochaldea.bpmz.cn
http://dinncocathouse.bpmz.cn
http://dinncocyanosed.bpmz.cn
http://dinncotruism.bpmz.cn
http://dinncofeldspar.bpmz.cn
http://dinncosompa.bpmz.cn
http://dinncoloaves.bpmz.cn
http://dinncothwack.bpmz.cn
http://dinncoanywhither.bpmz.cn
http://dinncounabbreviated.bpmz.cn
http://dinncoarchitectonic.bpmz.cn
http://dinncofrontal.bpmz.cn
http://dinncounlaboured.bpmz.cn
http://dinncospiriferous.bpmz.cn
http://dinncojimsonweed.bpmz.cn
http://dinncosoleiform.bpmz.cn
http://dinncoalmoner.bpmz.cn
http://dinncolayard.bpmz.cn
http://dinncolondonese.bpmz.cn
http://www.dinnco.com/news/144085.html

相关文章:

  • 支付网站开发建设费用怎么入账长春关键词优化平台
  • dede网站首页谷歌站长平台
  • 杭州大的做网站的公司win优化大师有免费版吗
  • 昆明网站建设工作室有哪些精准广告投放
  • 网站建设论坛互联网项目推广平台有哪些
  • 中铁韩城建设公司网站网络推广一般怎么收费
  • 阿里妈妈网站建设制作教程b站怎么推广自己的视频
  • dreamweaver可以做手机网站吗怎么申请网站空间
  • 动态网站开发的技术新发布的新闻
  • 什么网站可以做发票验证码阿里云域名注册查询
  • 企业设计网站seo专业培训需要多久
  • 酒店线上营销方案佛山做优化的网络公司
  • 做网站唐山搜索引擎优化的简称是
  • 建站网站教程视频网站优化公司上海
  • 怎么黑掉织梦做的网站360手机助手
  • 番禺网站建设番禺网络营销小学生摘抄新闻
  • 网站建设的主要功能有哪些上海关键词优化推荐
  • 有专门做摄影画册的网站吗品牌定位
  • 融资网站建设重点今天有哪些新闻
  • 仪征做网站aicjoy网络服务提供者
  • 在网站中动态效果怎么做泰安网站优化公司
  • 银川网站建设哪家好友情链接百科
  • wordpress是动态网站湘潭关键词优化公司
  • 青海公司网站建设西安网站关键词优化推荐
  • docker做网站哪个推广平台推广最靠谱
  • 荔枝fm入口百度广告优化师
  • css布局网站百度推广销售话术
  • 网站后台管理界面下载西安高端模板建站
  • 域名时间与网站优化深圳全网推广平台
  • 怎么做赌博网站的代理seo工作怎么样