我想建立一个ServerSocket,用此把传来的数据倒序输出:
--------------------------------------------------------------------------
MyServerSocket.java
import java.net.*;
import java.io.*;
public class MyServerSocket
{
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args)
{
// TODO: Add your code here
try
{
ServerSocket ss = new ServerSocket(8001);
while(true)
{
Socket s = ss.accept();
new Thread(new Service(s)).start();
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------
Service.java
import java.net.*;
import java.io.*;
public class Service implements Runnable
{
private Socket s;
public Service(Socket s)
{
this.s = s;
}
/**
* Method run
*
*
*/
public void run()
{
try
{
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
PrintWriter bw = new PrintWriter(out);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while(true)
{
String strLine = br.readLine();
if(br.readLine().equalsIgnoreCase("quit"))
{
break;
}
else
{
String strEcho = (new StringBuffer(strLine).reverse()).toString();
bw.println(strLine + "-->" + strEcho);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
------------------------------------------------------------------------------
用telnet连接本地的8001端口,在输入数据的时候.cmd中根本显示不出来!!请大家帮忙啊,看程序是不是哪有错啊?
--------------------------------------------------------------------------
MyServerSocket.java
import java.net.*;
import java.io.*;
public class MyServerSocket
{
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args)
{
// TODO: Add your code here
try
{
ServerSocket ss = new ServerSocket(8001);
while(true)
{
Socket s = ss.accept();
new Thread(new Service(s)).start();
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------
Service.java
import java.net.*;
import java.io.*;
public class Service implements Runnable
{
private Socket s;
public Service(Socket s)
{
this.s = s;
}
/**
* Method run
*
*
*/
public void run()
{
try
{
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
PrintWriter bw = new PrintWriter(out);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while(true)
{
String strLine = br.readLine();
if(br.readLine().equalsIgnoreCase("quit"))
{
break;
}
else
{
String strEcho = (new StringBuffer(strLine).reverse()).toString();
bw.println(strLine + "-->" + strEcho);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
------------------------------------------------------------------------------
用telnet连接本地的8001端口,在输入数据的时候.cmd中根本显示不出来!!请大家帮忙啊,看程序是不是哪有错啊?
String strLine = br.readLine();
if(br.readLine().equalsIgnoreCase("quit"))
{
break;
}
你有两个readLine2. bw.println(strLine + "-->" + strEcho);
没有bw.flush();3.if(br.readLine().equalsIgnoreCase("quit"))
{
break;
}
后没有关闭socket改了下子:
public void run(){
try{
InputStream in= s.getInputStream();
OutputStream out= s.getOutputStream();
PrintWriter bw= new PrintWriter(out);
BufferedReader br= new BufferedReader(new InputStreamReader(in));
while(true){
String strLine= br.readLine();
if(strLine.equalsIgnoreCase("quit")){
break;
} else{
String strEcho= (new StringBuffer(strLine).reverse() )
.toString();
bw.println(strLine+"-->"+strEcho);
bw.flush();
}
}
} catch (Exception e){
e.printStackTrace();
} finally{
try{
s.close();
}catch(Exception e){
}
}
}