JAVA聊天室关于多线程对象this的问题

CtrlCtrlCtrlCtrl 2018-09-08 08:21:23

萌新向大佬求助,最近在做聊天室练练手。打算客户端发送到服务端后服务端后转发到其他运行的客户,但不转发到发送该内容的客户,可是一直不行求大佬略微指导下。五十分不多献给大佬

二楼补代码
...全文
261 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
verejava 2018-09-09
  • 打赏
  • 举报
回复
CtrlCtrlCtrlCtrl 2018-09-09
  • 打赏
  • 举报
回复
引用 2 楼 verejava 的回复:
UDP 聊天室

http://www.verejava.com/?id=17478705812238

额,没有其他人帮助我。错误已经找到了是客户端问题
CtrlCtrlCtrlCtrl 2018-09-08
  • 打赏
  • 举报
回复
第一次发帖发错格式了再补
public class Server{
List<Myclient> linkedlist=new LinkedList<Myclient>();
ServerSocket ss;
Socket s;
public void connection() throws IOException{
ss=new ServerSocket(11165);
while(true) {
s=ss.accept();
Myclient my=new Myclient(s);
linkedlist.add(my);
new Thread(my).start();

}
}
private class Myclient implements Runnable{
BufferedReader br;
BufferedWriter bw;
public Myclient(Socket s){
try {
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
bw=new BufferedWriter(new OutputStreamWriter((s.getOutputStream())));
} catch (IOException e) {
Close.closeAll(br,bw);
}
}
@Override
public void run() {
while(true) {
send();
}
}
public String receive(){
String msg=null;
try {
msg=br.readLine();
} catch (IOException e) {
Close.closeAll(br);
}
return msg;
}
public void send(){
String data=null;
data=this.receive();
for(Myclient other:linkedlist){
if(this!=other) {
if(null!=data&& !data.equals("")) {
try {
other.bw.write("服务器-》"+data);
other.bw.newLine();
other.bw.flush();
} catch (IOException e) {
Close.closeAll(bw);
}
}
}
}
}
}
public static void main(String[] args) throws IOException{
Server sv=new Server();
sv.connection();
}
}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧