这是我的一个作业,因为没有用了PrintWriter,但是没有及时flush,导致服务端一直收不到客户端的数据。可跳过这部分去看下面的。
package mysocket;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class ServerThread extends Thread{
@Override
public void run() {
try {
ServerSocket serverSocket=new ServerSocket(3999);
Socket socket=serverSocket.accept();
System.out.println(socket.getInetAddress()+" port:"+socket.getPort());
Scanner scan=new Scanner(socket.getInputStream());
PrintWriter printWriter=new PrintWriter(socket.getOutputStream());//,true);
scan.useDelimiter("\n");
int flag=1;
while(flag==1){
// System.out.println("1111111111111");
String val= scan.next().trim();
System.out.println(val);
if("byebye".equalsIgnoreCase(val)){
flag=0;
printWriter.println("ByeBye客户端");
}else{
printWriter.println("服务端已收到ECHO"+val);
}
printWriter.flush();
}
scan.close();
printWriter.close(