其他服务器套接字在将数据发送到服务器套接字时会接收数据

时间:2020-07-28 15:18:33

标签: java server

首先,我对我的英语能力感到抱歉。

我正在尝试使用多线程将套接字与客户端连接。

我的服务器线程分别作为多线程运行 并且我为每个客户端设置了不同的套接字端口号,以防万一。

但是,当我已经连接另一个客户端时连接一个客户端时, 来自初始客户端的数据将发送到晚期客户端的服务器套接字。

例如:
client1定期将数据发送到其自己的服务器套接字。 但是,在连接client2时,client2的服务器套接字将使用该数据,而不是client1的服务器套接字。

这是服务器线程代码。

public class serverthread extends Thread {
    int  num;
    static Socket socket;
    static InputStream in;
    static DataInputStream dis;

    public serverthread(Socket s, int num) {
        this.socket = s;
        this.num = num;
        try {
            in = socket.getInputStream();
            dis = new DataInputStream(in);
        } catch (IOException e) {
            log.loglist.add("1exit(interect) : " + socket.getInetAddress());
        }
    }

    public void run() {
        try {
            while (true) {
                int come = dis.readInt();
            }
        } catch (IOException e) {
            server.endsocket(num);
        }
    }
}

在我看来,套接字显然有所不同,但是它正在将数据发送到错误的套接字。 应该是这样吗?还是我编码错误?

0 个答案:

没有答案
相关问题