最近做项目需要在web应用中,与短信网关建立一个长连接,想到一个问题,如果web应用进程死掉了,那么这个进程所起的TCP连接,会如何?
这个问题,应该是TCP/IP应用中一个基本的问题,经测试进程关闭后,进程所发起的连接均不存在了。有待进一步跟踪。
TCP test class
单线程server
package com.umpay.bank.test.ywr;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(5678);
Socket client = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(client
.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
while (true) {
String str = in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if (str.equals("end"))
break;
}
client.close();
}
}
//多线程server
package com.umpay.bank.test.ywr;
import java.net.*;
import java.io.*;
public class MultiUser extends Thread {
private Socket client;
public MultiUser(Socket c) {
this.client = c;
}
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client
.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
// Mutil User but can't parallel
while (true) {
String str = in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if (str.equals("end"))
break;
}
client.close();
} catch (IOException ex) {
} finally {
}
}
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(5678);
while (true) {
// transfer location change Single User or Multi User
MultiUser mu = new MultiUser(server.accept());
mu.start();
}
}
}
//客户端
package com.umpay.bank.test.ywr;
import java.net.*;
import java.io.*;
public class MyClient {
static Socket server;
public static void main(String[] args) throws Exception {
server = new Socket(InetAddress.getLocalHost(), 5678);
BufferedReader in = new BufferedReader(new InputStreamReader(server
.getInputStream()));
PrintWriter out = new PrintWriter(server.getOutputStream());
BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String str = wt.readLine();
out.println(str);
out.flush();
if (str.equals("end")) {
break;
}
System.out.println(in.readLine());
}
server.close();
}
}
UDP test class
//接收端--需要在发送端发送之前启动
package com.umpay.bank.test.ywr;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPReceiver {
public static void main(String[] args) throws Exception {
DatagramSocket ds = new DatagramSocket(3000);
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, 1024);
ds.receive(dp);
System.out.println(new String(dp.getData(), 0, dp.getLength()));
System.out.println(dp.getAddress().getHostAddress());
System.out.println(dp.getPort());
ds.close();
}
//发送端
package com.umpay.bank.test.ywr;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPSender {
public static void main(String[] args) throws Exception {
DatagramSocket ds = new DatagramSocket();
String str = "代码来源于网络,贡献于网络";
ds.send(new DatagramPacket(str.getBytes(), str.getBytes().length,
InetAddress.getByName("10.10.36.89"), 3000));
ds.close();
}
}
}
分享到:
相关推荐
TCP(Transmission Control Protocol)与UDP(User Datagram ...TCP-UDP服务管理软件是IT人员日常工作中不可或缺的工具,它能帮助我们更好地理解和优化网络服务的性能,确保数据的正确传输,并提高网络应用的用户体验。
本程序“TCP-UDP连接断开程序”专注于帮助用户查看并管理本地的TCP和UDP连接,以便进行网络状态的测试和调试。 TCP是一种面向连接的、可靠的传输协议,它保证了数据包的顺序和完整性。当两台设备建立TCP连接时,...
在"TCP-UDP服务管理 V3.01"中,开发者可以模拟TCP连接,测试其连接建立、数据传输和断开的过程,检查连接的稳定性和可靠性。 相比之下,UDP是一种无连接的、不可靠的协议。它不保证数据的顺序和完整性,但具有较低...
《TCP-UDP数据包自动发送工具V3.01版本:深入理解网络通信技术》 在信息技术领域,网络通信是核心部分之一,TCP(传输控制协议)与UDP(用户数据报协议)作为两种主要的传输层协议,为数据的可靠传输提供了基础。...
一款桌面pc TCP-UDP服务
非常不错的一个TCP-UDP测试工具,很好啊,大家快下载啊
《TCP-UDP-RS232调试助手:软硬件开发中的关键工具》 在IT行业中,无论是软件开发还是硬件设计,通信协议的调试是至关重要的一步。"TCP-UDP-RS232调试助手"正是这样一款专为软硬件工程师量身定制的工具,它能够帮助...
在"TCP_UDP_V1.03"这个压缩包中,可能包含了一套用于测试和管理TCP-UDP服务的工具或代码库,它可能提供了设置服务器和客户端、模拟数据传输、监控网络状态等功能,帮助开发者和网络管理员更好地理解和调试TCP-UDP...
【TCP-UDP】网络调试助手,非常便捷好用。
"小飞机-TCP-UDP测试工具"就是这样一个专门用于网络通信数据包测试的实用软件,它可以帮助我们对TCP(传输控制协议)和UDP(用户数据报协议)进行精准的测试,以优化网络性能和解决通信问题。 TCP和UDP是互联网协议...
NetAssist网络调试助手 名称:TCP-UDP服务管理 V1.03 特点:定时发送、十六进制显示。
TCP-UDP服务管理 V3.01[下载地址] 1、修改了定时发送的BUG. 2、增加了发送数据区,用户可以选择手动发送,也可以选择轮回发送;增加了TCP/UDP CLIENT 数据接收区的清空功能 3、修改了最后连接上的客户端断开后,...
TCP-UDP助手是一款专门用于TCP和UDP协议调试的工具,它能帮助开发者、网络管理员以及IT专业人员更好地理解和排查网络通信问题。 TCP是一种面向连接的、可靠的传输协议,它确保数据的正确顺序传输和无丢失。TCP通过...
"TCP-UDP调试助手"这个工具集成了TCP服务器、UDP服务器、TCP客户端和UDP客户端,是开发者进行网络编程时非常实用的辅助工具。TCP服务器可以模拟服务端,处理来自客户端的连接请求,进行数据交换;UDP服务器则接收并...
标题中的“sokit-TCP-UDP测试工具”是一款专门针对TCP和UDP协议进行网络通信测试的应用。这款工具设计简洁,功能实用,可以帮助用户快速检查和监控网络通信过程中的各种信息,确保数据传输的准确性和效率。 TCP...
《TCP-UDP服务管理 V3.02》是一款专为网络通信开发与测试设计的工具,它支持多线程运行,能同时发送多达3条不同的指令,极大地提升了工作效率。在这个软件中,用户可以便捷地模拟TCP和UDP协议下的指令交互,从而在...
TCP-UDP服务管理.exe