TCP连接建立与终止
2015-10-10 14:09
681 查看
TCP连接建立与终止
客户端:
In.close();
Out.close();
Socket.close();
如果3个都不关闭的话则会出现:
第二中情况:
Out.close();
如果只关闭输出流,则会出现:
第三中情况:
In.close();
如果只关闭输入流则会出现:
第四中情况:
Socket.close();
如果只关socket则会出现:
测试代码:
服务端代码:
客户端代码:(手打可能有点小问题…)
如果服务端过5秒关闭服务端的话,则挥手则会有4次:
[u1]客户端没有关闭
[u2]客户端输出流关闭,服务器收到客户端关闭
客户端:
In.close();
Out.close();
Socket.close();
如果3个都不关闭的话则会出现:
第二中情况:
Out.close();
如果只关闭输出流,则会出现:
第三中情况:
In.close();
如果只关闭输入流则会出现:
第四中情况:
Socket.close();
如果只关socket则会出现:
测试代码:
服务端代码:
package com.zhou; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class TestTcpIp { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(9999); System.out.println("服务器9999启动"); while (true) { Socket socket = server.accept(); System.out.println("有客户端coming..."); TestTcpIp myServer = new TestTcpIp(); myServer.invock(socket); } } public void invock( final Socket socket) { new Thread(new Runnable() { @Override public void run() { if (socket != null) { OutputStream out = null; InputStream in = null; try { in = socket.getInputStream(); byte[] msg = new byte[1024]; in.read(msg); System.out.println(new String(msg).trim()); out = socket.getOutputStream(); out.write("str\r\n".getBytes()); out.flush(); } catch (IOException e) { e.printStackTrace(); }finally{ try { //Thread.sleep(5000); //socket.close();//过5秒关闭服务端(发送服务端挥手) } catch (Exception e) { e.printStackTrace(); } } } } }).start(); } }
客户端代码:(手打可能有点小问题…)
Public class TestClient2{ Publicstatic void main(String args) throws Exception{ Socket socket = new Socket(“192.168.30.44”,9999); BufferedReader in = new BufferedReader (new InputStreamReader(socket.getInputStream)); PrintWriter out – new PrintWriter(socket.getOutputStream()); out.println(“fffffff”); out.flush(); String str =in.readLine(); out.close(); in.close(); socket.close(); } }
如果服务端过5秒关闭服务端的话,则挥手则会有4次:
[u1]客户端没有关闭
[u2]客户端输出流关闭,服务器收到客户端关闭
相关文章推荐
- 80端口被Apache的httpd.exe所占用
- Apache2 httpd.conf 配置详解(一)
- Apache2 httpd.conf 配置详解 (二)
- 驱动程序收到意外的登录前响应。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接。该驱动程序只能与 SQL Server 2000 或更高版本一起使
- vc 网络连接的测试方法
- Android MediaPlayer与Http Proxy结合之基础篇
- Android MediaPlayer与Http Proxy结合之提高篇
- Android MediaPlayer与Http Proxy结合之优化篇
- 【HttpClient4.5中文教程】【第一章 :基础】1.6 终止请求,1.7 重定向处理
- Windows 下 Apache HTTP Server 安装、配置以及与 Tomcat 的整合(附图)
- 【HttpClient4.5中文教程】【第一章 :基础】1.5 异常处理
- 【HttpClient4.5中文教程】【第一章 :基础】1.4 HTTP协议拦截器
- DHC谷歌浏览器插件的安装
- HttpClient 4.3超时设置
- 宿主机与虚拟机网络搭建(host-only)
- IIS7.5 Error Code 0x8007007e HTTP 错误 500.19的解决方法
- 禁用网络连接后无法访问本机数据库的问题
- 三大WEB服务器对比分析(apache ,lighttpd,nginx)
- 网络流+打印路径 Codeforces510E Fox And Dinner
- http响应代码解释