我现在知道有个telnet服务器,端口为port
当我在dos里面使用telnet server地址 port
系统提示我已经进入telnet服务器,然后需要输入一个参数,比如是test。
然后回车,telnet服务器就会返回一段代码string。我现在想通过socket来,发送test到telnet服务器地址,希望能够System.out.println(string)把返回值输出,该怎么做呢。我使用getInputStream()和getOutputStream()总是不能够获取到数据。

解决方案 »

  1.   

    public class MyServer {
    public static void main(String[] args) throws IOException {
    ServerSocket svrSocket = new ServerSocket(65321) ; //建立一个服务端连接,并且提供一个端口,其他计算机就可以来访问该端口
    while(true){
    Socket client = svrSocket.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(); 
    }

    }
    }import java.net.*;
    import java.io.*;public class Client {
    static Socket server; public static void main(String[] args) throws Exception {
    server = new Socket(InetAddress.getLocalHost(), 65321);
    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();
    }}
      

  2.   

    telnet 198.41.0.6 43
    进去后输入chinaren.com
    回车我现在就想得到这个回车后的结果,我刚刚修改了一下你的Client端,但是结果不是很理想。
    我在网上看到的也是这个程序。
      

  3.   

    import java.net.*;
    import java.io.*;public class Servicer implements Runnable {
    private Socket s;

    public Servicer(Socket s){

    this.s = s;
    }

    public void run(){

    try{
    InputStream ips = s.getInputStream();
    OutputStream ops = s.getOutputStream();

    BufferedReader br = new BufferedReader( new InputStreamReader(ips));
    PrintWriter pw = new PrintWriter(ops,true);
    while(true){

    String strLine = br.readLine();

    if(strLine.equalsIgnoreCase("quit")){

    TCPServerDemo.count--;
    if(TCPServerDemo.count==0)
    TCPServerDemo.bRunning = false;
    break;
    }
    System.out.println(strLine+"From"+s.getInetAddress().toString()+":"+s.getPort());
    String strEcho = (new StringBuffer(strLine).reverse()).toString();
    pw.println(strLine +"------>"+strEcho);
    }

    br.close();
    pw.close();

    s.close();
    }
    catch(IOException e){
     
    e.printStackTrace();
    }
    }
    }// 文件二import java.net.*;
    import java.io.IOException;
    public class TCPServerDemo {
    static int count=0;
    static boolean bRunning = true;
    public static void main(String[] args){

    try{
    ServerSocket ss = new ServerSocket(8003);

    //boolean bRunning = true;

    while(bRunning){

    Socket s = ss.accept();
    if(s!=null)
    count++;
    new Thread( new Servicer(s)).start();
    }

    ss.close();
    }
    catch(IOException e){

    e.printStackTrace();
    }
    }
    }运行:
    F:\>startF:\>java TCPServerDemo  F:\>telnet 127.0.0.1 8003输入quit后退出
      

  4.   

    非常感谢。不过我需要的是telnet后的数据。
      

  5.   

     呵呵 以前做项目中有这个要求从一个telnet上取一些数据