为什么服务器不能接受客户端传来的数据的?
为什么我服务器段不能得到从客户端传来的数据(我出1剪刀),就是控制台不能输出数据,只输出了在线人数.帮忙看看接受数据的那里哪里出错了。谢谢啦 、
还有我在我主机上面输127.0.0.1可以连接,但是输我在外界的IP没反应啊 ,还有如果在局域网中,我想用我旁边的电脑打开测试,我的电脑是服务器,那我IP应该设多少,。设我在外界的IP没反应啊 。
下面是服务器端:
import *;
import *;
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]]