首先,我对我的英语能力感到抱歉。
我正在尝试使用多线程将套接字与客户端连接。
我的服务器线程分别作为多线程运行 并且我为每个客户端设置了不同的套接字端口号,以防万一。
但是,当我已经连接另一个客户端时连接一个客户端时, 来自初始客户端的数据将发送到晚期客户端的服务器套接字。
例如:
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);
}
}
}
在我看来,套接字显然有所不同,但是它正在将数据发送到错误的套接字。 应该是这样吗?还是我编码错误?