客户端能接受到服务端的消息,但是发不出去,是为啥?

//服务端

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;


public class MyServer implements Runnable {
ServerSocket server=null;
Socket client;
boolean flag=true;
Thread conner;
BufferedReader sin;
DataOutputStream sout;


public static void main(String[] args) {
// TODO Auto-generated method stub
MyServer ms=new MyServer();
ms.serverStart();
}
public void serverStart() {
try {
server=new ServerSocket(5656);
System.out.println("端口号:"+server.getLocalPort());
while(flag) {
client=server.accept();
System.out.println("建立已完成");
InputStream is=client.getInputStream();
sin=new BufferedReader(new InputStreamReader(is));
OutputStream os=client.getOutputStream();
sout=new DataOutputStream(os);
conner=new Thread(this);
conner.start();
String aLine;
while((aLine=sin.readLine())!=null) {
System.out.println(aLine);
if(aLine.equals("bye")) {
flag=false;
conner.interrupt();
break;
}
}
sout.close();
os.close();
sin.close();
is.close();
client.close();
System.exit(0);
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true) {
int ch;
try {
while((ch=System.in.read())!=-1) {
sout.write((byte)ch);
if(ch=='\n')
sout.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
}
public void finalise() {
try {
server.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
}

//客户端

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;


public class MyClient implements Runnable {
Socket client;
boolean flag=true;
Thread conners;
BufferedReader cin;
DataOutputStream cout;


public static void main(String[] args) {
// TODO Auto-generated method stub
new MyClient().clientStart();
}

public void clientStart() {
try {
client=new Socket("192.168.1.10",5656);
System.out.println("已完成建立");
while(flag) {
InputStream is=client.getInputStream();
cin=new BufferedReader(new InputStreamReader(is));
OutputStream os=client.getOutputStream();
cout=new DataOutputStream(os);
conners=new Thread(this);
String aLine;
while((aLine=cin.readLine())!=null) {
System.out.println(aLine);
if(aLine.equals("bye")) {
flag=false;
conners.interrupt();
break;
}
}

cout.close();
os.close();
cin.close();
is.close();
client.close();
System.exit(0);
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
public void run() {
// TODO Auto-generated method stub
while(true) {
try {
int ch;


while((ch=System.in.read())!=-1) {
cout.write((byte)ch);
if(ch=='\n') 
cout.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值