戏说TCP网络编程

上传人:桔**** 文档编号:564559711 上传时间:2022-09-15 格式:DOC 页数:7 大小:27.50KB
返回 下载 相关 举报
戏说TCP网络编程_第1页
第1页 / 共7页
戏说TCP网络编程_第2页
第2页 / 共7页
戏说TCP网络编程_第3页
第3页 / 共7页
戏说TCP网络编程_第4页
第4页 / 共7页
戏说TCP网络编程_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《戏说TCP网络编程》由会员分享,可在线阅读,更多相关《戏说TCP网络编程(7页珍藏版)》请在金锄头文库上搜索。

1、.黑马程序员:戏说TCP网络编程1、何为TCP既然说到TCP协议网络编程,那么首先来了解下什么是TCP协议。TCP协议的全称叫Transmission Control Protocol 传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上。面向连接是什么呢.面向连接可以理解为指定对象,就好像平时打一样,你要打需要,也就是需要指定打的对象;可靠就简单了,就是在传输的过程中不会受到外界因素的印象;基于字节流也就是在传输数据的过程中是通过字节流来完成的。2、与兄弟UDP区别TCP协议有个兄弟叫

2、UDP,那么怎么又来了个UDP呢.UDP可以认为是区别于TCP的存在的。刚才说TCP类似于打,那么UDP就类似于广播;TCP需要先连接才可以传数据,而UDP是广播,也就是说我只管发送数据,不管你到底有没有接收到,所以TCP是可靠的,UDP是不可靠的;如果按照人物性格区分的话,那么TCP就可以认为是一个内向的,而UDP是一个外向的。3、初入门-TCP编程初窥说了这么多,开始咱们今天的主要内容吧,首先咱们来看一下TCP网络编程的使用步骤吧。还拿打来说,那么咱们打时候都是什么步骤呢.首先,准备好要拨打的,然后拨打后等待对方接通,当对方接通之后,就可以进行通话了。那么咱们拿拨打方称为客户端,被叫方称为

3、服务端,就可以来整理TCP的步骤了,首先咱们需要准备一个IP地址(被叫),使用InetAddress类来处理;既然是拨打就需要准备了,使用Socket来处理,然后等待服务端(被叫方)接通,同样需要对应的类ServerSocket来处理;当连接(接通)后开始传输数据(通话),就用到字节流了。 那么,下面咱们开始代码作业了:首先是客户端代码(只复制方法内容):try /准备要访问的服务器IP地址(也就是要拨打的,以本地ip为例)InetAddress ia = InetAddress.getByName(127.0.0.1);/创建Socket对象(机),需要制定端口号,8806就是端口号(端口号

4、相当于分机)Socket s = new Socket(ia, 8806);/准备要传输的数据,(要通话的内容)String data=Hello,I am TCP !;/因为是基于字节流的,所以需要把字符串转换为字节数组 byte bytes = data.getBytes();/创建输出流对象OutputStream out = s.getOutputStream();/传输数据(说出通话内容)out.write(bytes);out.flush(); catch (UnknownHostException e) e.printStackTrace(); catch (IOExceptio

5、n e) e.printStackTrace();接着是服务端代码(只复制方法内容):try /创建服务端ServerSocket对象ServerSocket ss = new ServerSocket(8806);/等待连接(等待别人拨打这个),当有人连接时返回连接socket对象Socket s = ss.accept();/通过获取到的连接Socket对象来获取包含客户端发送数据的输入流对象InputStream in = s.getInputStream();/创建放置数据的缓冲区byte bys = newbyte1024;/读取客户端发送的数据intlength = in.read

6、(bys);/输出到控制台System.out.println(客户端 : + new String(bys,0,length); catch(IOException e) e.printStackTrace();接着就是见证奇迹的时刻,我们一起来看运行结果吧,需要注意:一定要先运行服务端的代码,然后运行客户端的代码。4、进击篇-TCP客户端和服务端互通数据上文提到的只是客户端向服务端发送数据,那么咱们能不能让它们之间进行数据相互传送呢.刚才说了,TCP是面向连接的,基于字节流的,所以当连接建立好以后,我们只管将数据通过字节流进行传输就可以了。进击的客户端代码(只复制方法内容):try /准备

7、要访问的服务器IP地址(也就是要拨打的)InetAddress ia = InetAddress.getByName(127.0.0.1);/创建Socket对象(机),需要制定端口号,8806就是端口号(端口号相当于分机)Socket s = new Socket(ia, 8806);/准备要传输的数据,(要通话的内容)String data=Hello,I am TCP !;/因为是基于字节流的,所以需要把字符串转换为字节数组 byte bytes = data.getBytes();/创建输出流对象OutputStream out = s.getOutputStream();/输出内容o

8、ut.write(bytes);out.flush();/从连接的Socket对象中获取输入流InputStream inputStream = s.getInputStream();byte bys = newbyte1024;/读取服务端发送的数据intlength = inputStream.read(bys);/输出到控制台System.out.println(服务端 : + new String(bys,0,length); catch (UnknownHostException e) e.printStackTrace(); catch (IOException e) e.prin

9、tStackTrace();同样的服务端代码(只复制方法内容):try /创建服务端ServerSocket对象ServerSocket ss = new ServerSocket(8806);/等待连接(等待别人拨打这个),当有人连接时返回连接socket对象Socket s = ss.accept();/通过获取到的连接Socket对象来获取包含客户端发送数据的输入流对象InputStream in = s.getInputStream();/创建放置数据的缓冲区byte bys = newbyte1024;/读取客户端发送的数据intlength = in.read(bys);/输出到控

10、制台System.out.println(客户端 : + new String(bys,0,length);/准备要传输的数据,(要通话的内容)String data=Hello,I am server !;/因为是基于字节流的,所以需要把字符串转换为字节数组 byte bytes = data.getBytes();/创建输出流对象OutputStream out = s.getOutputStream();/输出内容out.write(bytes);out.flush(); catch (IOException e) e.printStackTrace();再一次见证奇迹:服务端客户端需要说明的是,咱们演示的只是获取一次数据,不管是客户端和服务端都是发送和获取都是一次。在现实生活中,打不会是双方直说一句话,所以需要注意,如果要达到这个效果的话,我们需要使用循环来包裹字节输入输出流部分的代码就搞定了。. v

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号