java实现socket连接,向指定主机指定端口发送socket数据,并获取响应数据

全栈工程师开发手册 (作者:栾鹏)
java教程全解

java实现socket连接,向指定主机指定端口发送socket数据,并获取响应数据

测试代码

	public static void main(String [] args) throws IOException {
		connect("192.168.8.102", 80);
		//即可在控制台输入命令,回车后会发送命令到远程主机,并在控制台打印响应数据
	}

远程连接函数

//远程连接
	public static void connect(String host,int port){
		try {
			Socket sock = new Socket(host, port);
			// 创建一个写线程
			new TelnetWriter(sock.getOutputStream()).start();
			// 创建一个读线程
			new TelnetReader(sock.getInputStream()).start();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}

从控制台读取用户输入命令 线程类的实现

class TelnetWriter extends Thread {
	private PrintStream out;

	public TelnetWriter(OutputStream out) {
		this.out = new PrintStream(out);
	}
	public void run() {
		try {
			// 包装控制台输入流
			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
			// 反复将控制台输入写到Telnet服务程序
			while (true)  
				out.println(in.readLine());
		} catch (IOException exc) {
			exc.printStackTrace();
		}
	}
}

将响应数据打印到控制台 线程类的实现

class TelnetReader extends Thread {
	private InputStreamReader in;

	public TelnetReader(InputStream in) {
		this.in = new InputStreamReader(in);
	}
	public void run() {
		try {
			// 反复将Telnet服务程序的反馈信息显示在控制台屏幕上
			while (true) {
				// 从Telnet服务程序读取数据
				int b = in.read();
				if (b == -1)  
					System.exit(0);
				// 将数据显示在控制台屏幕上
				System.out.print((char) b);
			}
		} catch (IOException exc) {
			exc.printStackTrace();
		}
	}
}

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾讯AI架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值