感谢大家的解答,可以运作了.
补充一下:
第一次连线的connection(以前没连线过的), 才会跑serverSocket.accept();
后续传送资料的部分,都靠SocketServer InputStream/OutputStream在处理.
InputStream需用无限循环不断监测client是否有送来资料.
当InputStream收到资料后,在转给OutputStream送给其他的client.
※ 引述《pttworld (批踢踢世界)》之铭言:
: ※ 引述《a2975313 (GN)》之铭言:
: : https://gist.github.com/dukeChang/9e7fc2f747592a9474ba
: 嗯。关键在于Server.java的
: Thread thread = new Thread(new ClientHandler(clientSocket,
: clientOutputStream));
: 你把clientSocket送给谁的问题。
: 在这里显然是ClientHandler,所以
: 在4.1下面使用while(true)把sendToEveryOne包起来就可以了。
: 因为ClientHandler的run()如果没有loop就只跑一次。
: 只是加了loop这样会变成每次都会送给所有人,
: 应该在设计上要分成sendToOne和sendToEveryone。
: 设计问题就请自行努力的。