当前位置: 代码迷 >> Java相关 >> 为什么服务器不能接受客户端传来的数据的?
  详细解决方案

为什么服务器不能接受客户端传来的数据的?

热度:80   发布时间:2008-03-27 17:52:45.0
为什么服务器不能接受客户端传来的数据的?
为什么我服务器段不能得到从客户端传来的数据(我出1剪刀),就是控制台不能输出数据,只输出了在线人数.
帮忙看看接受数据的那里哪里出错了。谢谢啦 、
还有我在我主机上面输127.0.0.1可以连接,但是输我在外界的IP没反应啊 ,还有如果在局域网中,我想用我旁边的电脑打开测试,我的电脑是服务器,那我IP应该设多少,。设我在外界的IP没反应啊 。


下面是服务器端:

import java.net.*;
import java.io.*;
import java.util.*;
public class Server4{
    private ServerSocket server;
    Vector sManager=new Vector();
    Random rnd=new Random();
    public Server4(){};
    void startServer(){
        try{
            server=new ServerSocket(8888);
            System.out.println("服务器套接字已创建成功");
            while(true){
                Socket socket=server.accept();
                System.out.println("已与客户机建立连接");
                new KBBCom_Thread(socket).start();
                sManager.add(socket);
                System.out.println("当前客户机连接数:"+sManager.size());
                
            }
        }catch(Exception e){}
            
    }
    public static void main(String[] args){
        Server4 server=new Server4();
        server.startServer();
    }

class KBBCom_Thread extends Thread{
    Socket socket;
    private DataInputStream reader;
    private DataOutputStream writer;
    KBBCom_Thread(Socket socket){
        this.socket=socket;
    }
    public void run(){
        try{
            reader=new DataInputStream(socket.getInputStream());
            writer=new DataOutputStream(socket.getOutputStream());
            String msg;
            while((msg=reader.readUTF())!=null){
                writer.writeUTF(rnd.nextInt(3)+"\n");
                writer.flush();
                System.out.println("来自客户机:"+msg);
            }
        }catch(Exception e){}finally{
            try
            {
                sManager.remove(socket);
                if(reader!=null) reader=null;
                if(writer!=null) writer=null;
                if(socket!=null) socket=null;
                reader=null;
                writer=null;
                socket=null;
                System.out.println("客户机离开");
                System.out.println("当前客户机的连接数:"+sManager.size());
            }catch(Exception e){}
        }
    }
}
}

[[it] 本帖最后由 梦自在 于 2008-3-27 17:53 编辑 [/it]]
搜索更多相关的解决方案: 服务器  客户端  局域网  数据  

----------------解决方案--------------------------------------------------------
顶一下
----------------解决方案--------------------------------------------------------
ping 127.0.0.1 是内部回环测试,检测主机网卡,网卡驱动以及硬件是否完好,所以这个测试肯定是可以通过的。

运行程序的时候是在cmd窗口下还是使用浏览器登录你的服务器?参数都写对了么?
----------------解决方案--------------------------------------------------------
  相关解决方案