java打印telnet的任何输出内容

首先,在ServerSocket创建之后,就可以返回一个accept,就是返回一个socket,如果没有socket连接,那么就会阻塞在这里。如果接收到socket连接,那么就会进入循环体开始执行循环部分代码。

首先会调用getInputStream方法来获取输入流,如果没有输入流,那么同样程序会阻塞在这里,如果收到了输入流,那么程序会将input流包装成为DataInputStream对象,然后取一行输出即可。

package com.test.net;
import java.io.DataInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class EchoServer {

	/**
	 * 打印客户端的所有输出
	 */
	@SuppressWarnings("deprecation")
	public static void main(String[] args) throws Exception {

		ServerSocket serverSocket=new ServerSocket(9999);
		/*accept方法是阻塞的*/
		Socket server=serverSocket.accept();
		while(true)
		{
			/*getInputStream方法是阻塞的*/
			InputStream in=server.getInputStream();
			DataInputStream dataIn=new DataInputStream(in);
			String str=dataIn.readLine();
			if(str != null)
			{
				System.out.println(str);
			}

		}

	}

}

使用telnet打开127.0.0.1 9999,然后输入内容,回车就可以看到效果。

输出结果

时间: 2024-10-08 21:31:25

java打印telnet的任何输出内容的相关文章

telnet如何保存输出内容到本地

http://bbs.csdn.net/topics/391023327 一种将程序的标准输出重定向到telnet终端的方法 http://blog.chinaunix.net/uid-23859284-id-5015284.html 64位与32位下如何使用C/C++调用Telnet http://blog.csdn.net/u010030181/article/details/25138985 linux重定向串口打印到telnet http://blog.csdn.net/u0134018

Java打印整数的二进制表示(代码与解析)

Java打印整数的二进制表示(代码与解析) int a=-99; for(int i=0;i<32;i++){ int t=(a & 0x80000000>>>i)>>>(31-i); System.out.print(t); } 拆分一下这段代码,要理解这个移位输出的问题还需要理解的以下内容:* 0x80000000是数的十六进制表示,转成二进制表示为10000000000000000000000000000000* 运算的优先级,移位运算高于逻辑运算,

java 打印流PrintWriter基本操作

import java.io.*; public class PrintDemo { public static void main(String[] args) { PrintWriter writer=null; writer=new PrintWriter(System.out); String str=new String("Hello cjc!!!"); writer.print(str); writer.close(); try { writer=new PrintWrit

【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能

[背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是参考: http://stackoverflow.com/questions/2116260/logging-to-a-file-on-android 去看看: http://code.google.com/p/android-logging-log4j/ [[折腾过程] 1.去: https://

java打印正金字塔,倒金字塔和“水影”金字塔

java打印正金字塔,倒金字塔和"水影"金字塔 --------原创文章,若要转载,请注明出处 小小少年 闲来无事,想起自己初学java的时候做的经典的无非就是打印出一些有意思的图形,心血来潮自己就写了这么一个打印金字塔的demo,自己回顾一下当初的感受,同时也 分享给初学java的同道中人,一起来培养编程的兴趣<(^-^)>. 金字塔图案 1,问题分析 我们都知道,打印输出的时候,都是从最左端输出,而这里,第一个星号是在中间.这实际是因为星号之前有很多空格.当我们使用问号

Java字符串的格式化与输出

Java字符串的格式化与输出 在C语言中格式化输出可以通过printf()函数实现,在Java中无需借助第三方工具同样可以实现此功能,自Java SE5后,java也提供了C语言中printf()风格的格式化输出方法.目前,有三种方法实现格式化输出,参考如下: 一.格式化输出的三种方法 1.System.out.format() Java SE5引入的format方法可以用于PrintStream或PrintWriter对象,其中也包括System.out对象.format()方法模仿自C的pr

如何定制对象中特定字段的JSON输出内容

引言: 在Web应用开发中,经常需要将对象转化为JSON字符串的过程中,会有默认的输出内容不符合要求的情况,比如DateTime.一般可以通过定制Serializer来实现定制化的JSON字符输出. 1.  在对象中的getXXX方法中设置自定义的Serializer public class MyObject { private DateTime startDate; @JsonSerialize(using = DateTimeJsonSerializer.class) public Dat

java解析xml文件并输出

使用java解析xml文件,通过dom4j,代码运行前需先导入dom4j架包. ParseXml类代码如下: import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class

dedecms list 判断 每隔3次输出内容

{dede:list pagesize='12' runphp='yes'} [field:global name=autoindex runphp="yes"](@me%3==0)? @me='输出':@me='';[/field:global] {/dede:list} 花了好几个小时才解决,简直坑T,T dedecms list 判断 每隔3次输出内容,布布扣,bubuko.com