`

java小试牛刀之tcp-udp连接

阅读更多

     最近做项目需要在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();
 }
}

 


}

 

1
1
分享到:
评论

相关推荐

    TCP-UDP服务管理 3.01

    TCP(Transmission Control Protocol)与UDP(User Datagram ...TCP-UDP服务管理软件是IT人员日常工作中不可或缺的工具,它能帮助我们更好地理解和优化网络服务的性能,确保数据的正确传输,并提高网络应用的用户体验。

    TCP-UDP连接断开程序.zip

    本程序“TCP-UDP连接断开程序”专注于帮助用户查看并管理本地的TCP和UDP连接,以便进行网络状态的测试和调试。 TCP是一种面向连接的、可靠的传输协议,它保证了数据包的顺序和完整性。当两台设备建立TCP连接时,...

    TCP-UDP服务管理 V3.01

    在"TCP-UDP服务管理 V3.01"中,开发者可以模拟TCP连接,测试其连接建立、数据传输和断开的过程,检查连接的稳定性和可靠性。 相比之下,UDP是一种无连接的、不可靠的协议。它不保证数据的顺序和完整性,但具有较低...

    TCP-UDP数据包自动发送工具V3.01版本

    《TCP-UDP数据包自动发送工具V3.01版本:深入理解网络通信技术》 在信息技术领域,网络通信是核心部分之一,TCP(传输控制协议)与UDP(用户数据报协议)作为两种主要的传输层协议,为数据的可靠传输提供了基础。...

    TCP-UDP服务管理 V1.03

    一款桌面pc TCP-UDP服务

    TCP-UDP服务管理V3.02.exe

    非常不错的一个TCP-UDP测试工具,很好啊,大家快下载啊

    TCP-UDP-RS232调试助手.rar

    《TCP-UDP-RS232调试助手:软硬件开发中的关键工具》 在IT行业中,无论是软件开发还是硬件设计,通信协议的调试是至关重要的一步。"TCP-UDP-RS232调试助手"正是这样一款专为软硬件工程师量身定制的工具,它能够帮助...

    TCP-UDP服务管理

    在"TCP_UDP_V1.03"这个压缩包中,可能包含了一套用于测试和管理TCP-UDP服务的工具或代码库,它可能提供了设置服务器和客户端、模拟数据传输、监控网络状态等功能,帮助开发者和网络管理员更好地理解和调试TCP-UDP...

    【TCP-UDP网络调试助手】TCP-UDP.exe

    【TCP-UDP】网络调试助手,非常便捷好用。

    小飞机-TCP-UDP测试工具.zip

    "小飞机-TCP-UDP测试工具"就是这样一个专门用于网络通信数据包测试的实用软件,它可以帮助我们对TCP(传输控制协议)和UDP(用户数据报协议)进行精准的测试,以优化网络性能和解决通信问题。 TCP和UDP是互联网协议...

    NetAssist网络调试助手 名称:TCP-UDP服务管理 V1.03 特点:定时发送、十六进制显示

    NetAssist网络调试助手 名称:TCP-UDP服务管理 V1.03 特点:定时发送、十六进制显示。

    TCP-UDP测试工具

    TCP-UDP服务管理 V3.01[下载地址] 1、修改了定时发送的BUG. 2、增加了发送数据区,用户可以选择手动发送,也可以选择轮回发送;增加了TCP/UDP CLIENT 数据接收区的清空功能 3、修改了最后连接上的客户端断开后,...

    tcp-udp助手.zip

    TCP-UDP助手是一款专门用于TCP和UDP协议调试的工具,它能帮助开发者、网络管理员以及IT专业人员更好地理解和排查网络通信问题。 TCP是一种面向连接的、可靠的传输协议,它确保数据的正确顺序传输和无丢失。TCP通过...

    TCP-UDP调试助手

    "TCP-UDP调试助手"这个工具集成了TCP服务器、UDP服务器、TCP客户端和UDP客户端,是开发者进行网络编程时非常实用的辅助工具。TCP服务器可以模拟服务端,处理来自客户端的连接请求,进行数据交换;UDP服务器则接收并...

    sokit-TCP-UDP测试工具

    标题中的“sokit-TCP-UDP测试工具”是一款专门针对TCP和UDP协议进行网络通信测试的应用。这款工具设计简洁,功能实用,可以帮助用户快速检查和监控网络通信过程中的各种信息,确保数据传输的准确性和效率。 TCP...

    TCP-UDP服务管理 V3.02

    《TCP-UDP服务管理 V3.02》是一款专为网络通信开发与测试设计的工具,它支持多线程运行,能同时发送多达3条不同的指令,极大地提升了工作效率。在这个软件中,用户可以便捷地模拟TCP和UDP协议下的指令交互,从而在...

    TCP-UDP服务管理.exe

    TCP-UDP服务管理.exe

Global site tag (gtag.js) - Google Analytics