您的位置:首页 > 编程语言 > Java开发

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

2017-10-12 19:03 1061 查看
全栈工程师开发手册 (作者:栾鹏)

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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐