读书人

java网络编程有关问题2

发布时间: 2013-06-19 10:26:41 作者: rapoo

java网络编程问题2
我最近刚学java,在看韩顺平讲java网络编程(项目是仿QQ)的时候,有个问题,他定义了客户端的静态socket,部分代码如下:
客户端:
public class QqClientConServer {
public static Socket s;
public boolean sendLoginInfoToServer(Object o)
{
.....
s=new Socket("127.0.0.1",9999);
}


服务端:
public class MyQqServer {
public MyQqServer()
{try {ServerSocket ss=new ServerSocket(9999);
while(true)
{Socket s=ss.accept();}
客户端在发送的时候:ObjectInputStream ois=new ObjectInputStream(QqClientConServer.s.getInputStream());每个用户发送和接收都是这个s。
但是我在测试的时候发现每个客户端都和服务器端对应个socket,客户端绝不是一个socket。
但它又是通过静态共享s发送和接受的,这是怎么回事呢?有高手能解释下吗?
[解决办法]
起了两个客户端,就相当于启动了两个java虚拟机,实际上s是存在两个虚拟机中的静态变量,

读书人网 >J2SE开发

热点推荐