1
我编写了一个应侦听端口80和81的套接字侦听器,并且当数据到达这些端口时对这些数据执行操作。我希望这个监听器能够同时监听这两个端口,并用以下方式编码。执行线程的Java套接字
import java.net.*;
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class MultipleSocketServer implements Runnable {
private int a;
private ServerSocket connection;
private String TimeStamp;
private int ID;
public static void main(String[] args){
// System.out.print("ip");
// String gh="12345";
//System.out.println(gh.substring(1,3));
int port = 80;
int port1 = 81;
int count = 0;
double a=234.52121;
//System.out.println(bf3.toString());
try{
ServerSocket socket1 = new ServerSocket(port);
ServerSocket socket2=new ServerSocket(port1);
System.out.println("MultipleSocketServer Initialized");
Runnable runnable = new MultipleSocketServer(socket1, ++count);
Runnable run = new MultipleSocketServer(socket2, ++count);
Thread thread = new Thread(runnable);
Thread thread1 = new Thread(run);
while (true) {
//Socket connection = socket1.accept();
thread.start();
thread1.start();
}
}
catch (Exception e) {}
}
MultipleSocketServer(ServerSocket s, int i) {
this.connection = s;
this.ID = i;
}
public void run() {
while(true){
try {
Socket incoming=connection.accept();
BufferedInputStream is = new BufferedInputStream(incoming.getInputStream());
int character;
while((character = is.read())!=-1) {
.
.
do the input data handling here
.
.
}
}
catch(Exception e){}
}
}
}
但由于某种原因,这似乎并没有显示线程/并发行为。 我正在使用超级终端测试此代码,并且每次我从超级终端断开时,程序执行都会停止并引发“套接字关闭”异常。
任何指针将有很大的帮助
干杯
@sfussenegger:谢谢你,你是一个救生员。与此同时,我不相信我一直呆在什么地方。 :D 对代码结构进行多次更改的结果,我猜:) – ping 2010-01-23 09:14:46