import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;import model.MyThread;public final class Test { public static void main(String[] args) throws IOException
{
ServerSocket server = new ServerSocket(9090);
System.out.println("server start...");
try
{
while(true)
{
Socket s = server.accept();
System.out.println("some connects in");
System.out.println(s.getInetAddress().getHostAddress());
new MyThread(s);
}
}
finally
{
// server.close();
System.out.print("final");
}
}
}package model;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;public final class MyThread extends Thread
{
private Socket _socket;
private BufferedReader os;
public MyThread(Socket socket) throws IOException
{
_socket = socket;
start();
}
public void run() //throws IOException
{
try
{
os =new BufferedReader(new InputStreamReader(_socket.getInputStream()));
while(true)
{
String msg = os.readLine();
if(msg!="1")
{
System.out.println(msg);//();
}
else
{
break;
}
}
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{ System.out.println("close the Server socket and the io.");
try
{
_socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}自己用as3写的客户端。在Mythread里,58行readline,当连接的时候,打印客户端传送的字符串,但是当客户端断开的时候,并没有发生异常走到finally,而是无限输出null,求解释,十分感谢
import java.net.ServerSocket;
import java.net.Socket;import model.MyThread;public final class Test { public static void main(String[] args) throws IOException
{
ServerSocket server = new ServerSocket(9090);
System.out.println("server start...");
try
{
while(true)
{
Socket s = server.accept();
System.out.println("some connects in");
System.out.println(s.getInetAddress().getHostAddress());
new MyThread(s);
}
}
finally
{
// server.close();
System.out.print("final");
}
}
}package model;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;public final class MyThread extends Thread
{
private Socket _socket;
private BufferedReader os;
public MyThread(Socket socket) throws IOException
{
_socket = socket;
start();
}
public void run() //throws IOException
{
try
{
os =new BufferedReader(new InputStreamReader(_socket.getInputStream()));
while(true)
{
String msg = os.readLine();
if(msg!="1")
{
System.out.println(msg);//();
}
else
{
break;
}
}
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{ System.out.println("close the Server socket and the io.");
try
{
_socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}自己用as3写的客户端。在Mythread里,58行readline,当连接的时候,打印客户端传送的字符串,但是当客户端断开的时候,并没有发生异常走到finally,而是无限输出null,求解释,十分感谢
if(null==str||"null".equals(str)){
_socke.close();
break;
}