戏说TCP网络编程.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优选 优选 PAGE / NUMPAGES 优选 黑马程序员:戏说TCP网络编程 1、何为TCP 既然说到TCP协议网络编程,那么首先来了解下什么是TCP协议。 TCP协议的全称叫Transmission Control Protocol传输控制协议, 是一种面向连接的、可靠的、基于字节流的传输层通信协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上。 面向连接是什么呢?面向连接可以理解为指定对象,就好像平时打一样,你要打需要,也就是需要指定打的对象;可靠就简单了,就是在传输的过程中不会受到外界因素的印象;基于字节流也就是在传输数据的过程中是通过字节流来完成的。 2、与兄弟UDP区别 TCP协议有个兄弟叫UDP,那么怎么又来了个UDP呢?UDP可以认为是区别于TCP的存在的。刚才说TCP类似于打,那么UDP就类似于广播;TCP需要先连接才可以传数据,而UDP是广播,也就是说我只管发送数据,不管你到底有没有接收到,所以TCP是可靠的,UDP是不可靠的;如果按照人物性格区分的话,那么TCP就可以认为是一个向的,而UDP是一个外向的。 3、初入门-TCP编程初窥 说了这么多,开始咱们今天的主要容吧,首先咱们来看一下TCP网络编程的使用步骤吧。 还拿打来说,那么咱们打时候都是什么步骤呢?首先,准备好要拨打的,然后拨打后等待对方接通,当对方接通之后,就可以进行通话了。那么咱们拿拨打方称为客户端,被叫方称为服务端,就可以来整理TCP的步骤了,首先咱们需要准备一个IP地址(被叫),使用InetAddress类来处理;既然是拨打就需要准备了,使用Socket来处理,然后等待服务端(被叫方)接通,同样需要对应的类ServerSocket来处理;当连接(接通)后开始传输数据(通话),就用到字节流了。 那么,下面咱们开始代码作业了: 首先是客户端代码(只复制方法容): try { //准备要访问的服务器IP地址(也就是要拨打的,以本地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(); //传输数据(说出通话容) out.write(bytes); out.flush(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 接着是服务端代码(只复制方法容): try { //创建服务端ServerSocket对象 ServerSocket ss = new ServerSocket(8806); //等待连接(等待别人拨打这个),当有人连接时返回连接socket对象 Socket s = ss.accept(); //通过获取到的连接Socket对象来获取包含客户端发送数据的输入流对象 InputStream in = s.getInputStream(); //创建放置数据的缓冲区 byte[] bys = newbyte[1024]; //读取客户端发送的数据 intlength = in.read(bys); //输出到控制台 System.out.println("客户端:" + new String(bys,0,length)); } catch (IOException e) { e.printStackTrace(); } 接着就是见证奇迹的时刻,我们一起来看运行结果吧,需要注意:一定要先运行服务端的代码,然后运行客户端的代码。 4、进击篇-TCP客户端和服务端互通数据 上文提到的只是客户端向服务端发送数据,那么咱们能不能让它们之间进行数据相互传送呢?刚才说了,TCP是面向连接的,基于字节流的,所以当连接建立好以后,我们只管将数据通过字节流进行传输就可以了。 进击的客户端代码(只复制方法容): try { //准备要访问的服务器IP地址(也就是要拨打的) InetAddress ia = InetAddress.getByName("127.0.0.1"); //创建Socket对象(机),需要制定

文档评论(0)

linlin921 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档