java server端发送数据给客户端出现问题,求高手帮忙看下!

java server端发送数据给客户端出现问题,求高手帮忙看下!
package com.zeph.multiclient;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class MultiThreadServer extends Thread {
private Socket client;

public MultiThreadServer(Socket c) {
    this.client = c;
}

public void run() 
{
    try
    {
        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
        OutputStreamWriter out = new OutputStreamWriter(client.getOutputStream());
        //BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
        //out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);  
        String str = in.readLine();//接收信息
        while (!(str.equals(null))) 
        {
            System.out.println(str);//将接收到的信息打印出来
            out.write('0');//信息写入输出流
            out.flush();//立刻刷新输出流
            System.out.println("ok");
            str=null;//数据清空,重新接收数据
            str = in.readLine();//接收信息
            System.out.println(str);//将接收到的信息打印出来
            str=null;//清空数据,以跳出循环
        }
    } 
    catch (IOException e) 
    {
    }
}

public static void main(String[] args) throws IOException {
    ServerSocket server = new ServerSocket(1234);
    while (true) {
        MultiThreadServer mc = new MultiThreadServer(server.accept());
        mc.start();
    }
}

}

你这没头没尾的没法看,建议你找一个完整的例子学习

http://blog.csdn.net/xiangqiao123/article/details/6844155

你先调试通,如果还不行,是你网络配置的问题,比如防火墙等。等你把它调试通了,再逐步按照你的要求完善。

str=null;//清空数据,以跳出循环,不能这么写的,会报空指针。改成while(str!=null)