JAVA的TCP通信完全解释

来源:互联网 发布:免流软件制作 编辑:程序博客网 时间:2024/05/16 01:14
  1. TCP的原理和过程
TCP是面向连接的协议,也就是说,在双方都确认连接的情况下,才会继续发送数据。其具体过程如下图所示


其中三步握手的过程解释如下:
第一步,客户端发送一个连接请求到服务器,如果没有收到响应或者服务器返回失败则客户端返回失败,不能正确连接。
第二步,服务器端在接收到连接请求后,发回一个同意请求连接,返回给客户端,并且等待客户端的第三次回应,如果没有回应,服务器端关闭连接。
第三步,客户端端收到服务器的同意请求后,再次发送一个同意连接。至此连接建立。剩下的就是TCP数据交互过程。

JAVA的TCP通信过程。
分为TCP的SERVER和TCP的CLIENT。即服务器端和客户端通信模型,注意,服务器端先运行,否则客户端会因为无法连接服务器端而产生错误。服务器一直在监听。然后客户端开始运行,并且请求连接服务器(TCP的连接是不需要用户名和密码的),连接成功后,发送数据(在本例子中就是简单的发送一个数字)。
TCPServer.java
import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;public class TCPServer {public static void main(String[] args) {// TODO Auto-generated method stub//监听类ServerSocket server;//套接字类Socket client;//输入流InputStream is;try{server=new ServerSocket(9999);//开始监听,收到一个套接字client=server.accept();System.out.println("connection from:"+client.getRemoteSocketAddress());//取得数据is=client.getInputStream();System.out.println(is.read());client.close();server.close();}catch(Throwable t){t.printStackTrace();}System.out.println();}}

TCPClient.java

import java.io.OutputStream;import java.net.InetAddress;import java.net.Socket;public class TCPClient {public static void main(String[] args) {// TODO Auto-generated method stubSocket client;OutputStream os;InetAddress ia;try{//名称转换为IPia=InetAddress.getByName("localhost");//建立一个套接字client=new Socket(ia,9999);os=client.getOutputStream();//向服务器发送数据os.write(1);client.close();}catch(Throwable t){t.printStackTrace();}}}



运行后输出结果截图:



本文来自IT部落格,转载请注明,http://www.itbuluoge.com,~致力于编程、算法、数据库技术的分享

1 0
原创粉丝点击