服务器端程序:
{
private ServerSocket s;
private Socket s1;
private DataOutputStream dos;
private DataInputStream dis;
public void connect(){
try
{
s=new ServerSocket(8888);
s1=s.accept();
dos=new DataOutputStream(s1.getOutputStream());
dis=new DataInputStream(s1.getInputStream());
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void close(){
try
{
dis.close();
dos.close();
s1.close();
s.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void createThread(){
new MyServerReader(this).start();
new MyServerWriter(this).start();
}
public DataOutputStream getDataOutputStream(){
return dos;
}
public DataInputStream getDataInputStream(){
return dis;
}
public static void main(String[] args)
{
TestServer ts=new TestServer();
ts.connect();
ts.createThread();
}
}
class MyServerReader extends Thread
{
private TestServer server;
public MyServerReader(TestServer server){
this.server=server;
}
public void run(){
DataInputStream dis=server.getDataInputStream();
String info;
try
{
while (true)
{
info=dis.readUTF();
System.out.println("对方说:"+info);
if (info.equals("bye"))
{
System.out.println("对方下线,程序退出");
server.close();
System.exit(0);
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
};
class MyServerWriter extends Thread
{
private TestServer server;
public MyServerWriter(TestServer server){
this.server=server;
}
public void run(){
DataOutputStream dos=server.getDataOutputStream();
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String info;
try
{
while(true){
info=br.readLine();
dos.writeUTF(info);
if(info.equals("bye")){
System.out.println("自己下线,程序退出!");
server.close();
System.exit(0);
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
客户端程序:
{
private Socket s;
private DataOutputStream dos;
private DataInputStream dis;
public void connect(){
try
{
s=new Socket("127.0.0.1",8888);
dos=new DataOutputStream(s.getOutputStream());
dis=new DataInputStream(s.getInputStream());
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void close(){
try
{
dis.close();
dos.close();
s.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void createThread(){
new MyClientReader(this).start();
new MyClientWriter(this).start();
}
public DataInputStream getDataInputStream(){
return dis;
}
public DataOutputStream getDataOutputStream(){
return dos;
}
public static void main(String[] args)
{
TestClient tc=new TestClient();
tc.connect();
tc.createThread();
}
}
class MyClientReader extends Thread
{
private TestClient client;
public MyClientReader(TestClient client){
this.client=client;
}
public void run(){
DataInputStream dis=client.getDataInputStream();
String info;
try
{
while(true){
info=dis.readUTF();
System.out.println("对方说:"+info);
if (info.equals("bye"))
{
System.out.println("对方下线,程序退出!");
client.close();
System.exit(0);
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
};
class MyClientWriter extends Thread
{
private TestClient client;
public MyClientWriter(TestClient client){
this.client=client;
}
public void run(){
DataOutputStream dos=client.getDataOutputStream();
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String info;
try
{
while (true)
{
info=br.readLine();
dos.writeUTF(info);
if(info.equals("bye")){
System.out.println("自己下线,程序退出!");
client.close();
System.exit(0);
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
};