我现在知道有个telnet服务器,端口为port
当我在dos里面使用telnet server地址 port
系统提示我已经进入telnet服务器,然后需要输入一个参数,比如是test。
然后回车,telnet服务器就会返回一段代码string。我现在想通过socket来,发送test到telnet服务器地址,希望能够System.out.println(string)把返回值输出,该怎么做呢。我使用getInputStream()和getOutputStream()总是不能够获取到数据。
当我在dos里面使用telnet server地址 port
系统提示我已经进入telnet服务器,然后需要输入一个参数,比如是test。
然后回车,telnet服务器就会返回一段代码string。我现在想通过socket来,发送test到telnet服务器地址,希望能够System.out.println(string)把返回值输出,该怎么做呢。我使用getInputStream()和getOutputStream()总是不能够获取到数据。
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();
}}
进去后输入chinaren.com
回车我现在就想得到这个回车后的结果,我刚刚修改了一下你的Client端,但是结果不是很理想。
我在网上看到的也是这个程序。
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后退出