TCP实例 未完待续
来源:互联网 发布:手机远程桌面软件 编辑:程序博客网 时间:2024/05/18 01:04
我们知道TCP传输协议中的基本传输单元是socket,而TCP中的socket分为两种,一种是ServerSocket也就是服务端的套接字,而另一个就是socket这个是客户端的套接字。TCP不同于UDP,在UDP中我们可以说接收端和发送端,两者的顺序可以互换,而在tcp中一定是客户端请求访问服务端才能打开连接。
ok,废话少说,今天的主要目标是带着大家完成一个TCP的一个简单的例子:
没有服务端,就不可能接受客户端的数据,故设计的时候是先设计服务端:
package io.guaju.socket;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;//此类是服务端public class Server {//定义一个监听的方法,这个方法其实就是服务器的逻辑,一直监听有没有客户端接入,并且传递数据public void listen() throws IOException{//①定义一个serversocket用来监听特定端口的信息ServerSocket serverSocket = new ServerSocket(8989);//②定义好服务端socket后,其实服务端就只需等待即可,这个时候服务端的accept方法就是等待的逻辑,这个逻辑是阻塞的Socket accept = serverSocket.accept();//③如果服务端接受到后会拿到一个socket,这个socket其实就是接受到客户端的socket//现在我们来操作这个socketString hostAddress = accept.getInetAddress().getHostAddress();//得到主机地址int port = accept.getPort();//得到客户端的端口号//④下方最重要的是得到数据,注意TCP中的传输核心上是通过流来传输的InputStream inputStream = accept.getInputStream();//得到来自客户端的输入流//读取流,并且打印StringBuffer sb=new StringBuffer();int temp=0;byte[] buf=new byte[1024];while ((temp=inputStream.read(buf))!=-1) {sb.append(new String(buf,0,temp));}System.out.println("接受到的数据是"+sb);OutputStream outputStream = accept.getOutputStream();//这个outputstream 就是客户端的输出流//⑤我们可以操作这个输出流,来写入东西。outputStream.write("欢迎你来我这玩".getBytes());System.out.println("现在结束回话");//释放资源outputStream.close();inputStream.close();serverSocket.close();}}
1 0
- TCP实例 未完待续
- TCP/IP协议族(未完待续)
- ToolAgent编程实例(未完待续)
- greenplum sql使用实例【未完待续】
- 未完待续
- 未完待续
- 未完待续
- 未完,待续
- 未完待续~~~~~~~~~~~~~~~~
- 未完待续
- 未完待续
- 未完待续
- 未完待续
- 未完待续
- TCP UDP IP 协议汇总(未完待续)
- 传输层(TCP/IP 协议)未完待续
- Linux(CentOS)下SVN命令使用实例(未完待续)
- 未完,待续……
- 使用BOOTICE 恢复系统启动项
- HDU 5874 2016 ACM/ICPC Asia Regional Dalian Online 1007Friends and Enemies
- 数据结构总结之线段树
- js字符串翻转方法大全?
- 搭建linux服务器
- TCP实例 未完待续
- Python 字符串
- JSTL标签库_03(国际化)
- js 操作cookie
- Apache OS 10013
- java中静态代码块的用法 static用法详解 类的加载顺序。
- 用AS3.0生成身份证号码随机
- JAVA方法和本地方法
- 二叉树和面试题