这是一个小程序,在Client端输一个String,Server端可以接受到,
Server再来一个String Client又可以接受到....
想在Server和Client端增加一个退出功能,输入quit就可以退出
试了很多下,不知应该在哪里把它打断,大家可以补充一下啊,万分感谢啊
Server 端代码
import java.io.*;
import java.net.*;public class TalkServer {
public static void main(String[] args) {
InputStream is = null;
OutputStream os = null;
ServerSocket ss = null;
try {
ss = new ServerSocket(8888);
} catch(UnknownHostException e) {
System.out.println("无法监听该端口");
} catch(IOException e) {
e.printStackTrace();
}
try{
while(true) {
Socket s = ss.accept();
is = s.getInputStream();
os = s.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
System.out.println(dis.readUTF());
System.out.print("Server:  ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
dos.writeUTF("Server:  "+line);
dos.flush();
dis.close();
dos.close();
s.close();
}
} catch(IOException e) {
e.printStackTrace();
}
}
}
Client 端代码import java.io.*;
import java.net.*;public class TalkClient {
public static void main(String[] args) {
InputStream is = null;
OutputStream os = null;
Socket s = null;
while(true) {
try {
s = new Socket("127.0.0.1",8888);
} catch (UnknownHostException e) {
System.out.println("无法连接服务器");
} catch(IOException e) {
e.printStackTrace();
}
try{
os = s.getOutputStream();
is = s.getInputStream();
DataOutputStream dos = new DataOutputStream(os);
DataInputStream dis = new DataInputStream(is);
System.out.print("Client:  ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
dos.writeUTF("Client:  "+line);
dos.flush();
System.out.println(dis.readUTF());
dos.close();
dis.close();
s.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
}

解决方案 »

  1.   

    http://topic.csdn.net/u/20101102/21/16b4ea2c-1265-4930-a4bf-0836021c2c53.html
      

  2.   

    你这个业务没有说清楚哦!
    你是Client输入一个String,Server接受,你上面说Server在输入一个String,client的接受?
    两个矛盾了吧,还有想在Server和Client端增加一个退出功能?两边都增加?
      

  3.   

    郁闷还是自己搞出来了,汗import java.io.*;
    import java.net.*;public class TalkServer {
    public static void main(String[] args) {
    InputStream is = null;
    OutputStream os = null;
    ServerSocket ss = null;
    Socket s = null;
    try {
    ss = new ServerSocket(6688);
    } catch(UnknownHostException e) {
    System.out.println("无法监听端口");
    } catch(IOException e) {
    e.printStackTrace();
    }
    try{
    s = ss.accept();
    is = s.getInputStream();
    os = s.getOutputStream();
    DataInputStream dis = new DataInputStream(is);
    DataOutputStream dos = new DataOutputStream(os);
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println(dis.readUTF());
    System.out.print("Server:  ");
    String line = br.readLine();
    while(!line.equals("bye")) {
    dos.writeUTF("Server:  "+line);
    dos.flush();
    System.out.println(dis.readUTF());
    System.out.print("Server:  ");
    line = br.readLine();
    }
    dos.writeUTF("Server:  "+line);
    dos.flush();
    dis.close();
    dos.close();
    s.close();
    ss.close();
    } catch(IOException e) {
    e.printStackTrace();
    }
    }
    }import java.io.*;
    import java.net.*;public class TalkClient {
    public static void main(String[] args) {
    InputStream is = null;
    OutputStream os = null;
    Socket s = null;
    try {
    s = new Socket("127.0.0.1",6688);
    } catch (UnknownHostException e) {
    System.out.println("无法连接服务器");
    } catch(IOException e) {
    e.printStackTrace();
    }
    try{
    os = s.getOutputStream();
    is = s.getInputStream();
    DataOutputStream dos = new DataOutputStream(os);
    DataInputStream dis = new DataInputStream(is);
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Client:  ");
    String line = br.readLine();
    while(!line.equals("bye")) {
    dos.writeUTF("Client:  "+line);
    dos.flush();
    System.out.println(dis.readUTF());
    System.out.print("Client:  ");
    line = br.readLine();
    }
    dos.writeUTF("Client:  "+line);
    dos.flush();
    dos.close();
    dis.close();
    s.close();
    } catch(IOException e) {
    e.printStackTrace();
    }
    }
    }