服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

利用socket进行java网络编程(三)


  作者: 郗?f
  附:服务器的实现代码
  import java.net.*;
  import java.io.*;
  import java.awt.event.actionevent;
  import java.awt.event.actionlistener;
  public class talkserver
  { public static void main(string[] args)
   { try
    { file://建立服务器
     serversocket server = new serversocket(9998);
     int i=1;
     for(;;)
      { socket incoming = server.accept()
       new serverthread(incoming,i).start();
       i++;
      }
     }catch (ioexception ex){
     ex.printstacktrace();
    }
   }
  }
  class serverthread extends thread implements actionlistener
  {
   private int threadnum;
   private socket socket;
   talkserverfrm t;
   bufferedreader in;
   printwriter out;
   private boolean talking=true;
   public serverthread(socket s,int c)
   { threadnum = c;
    socket = s;
   }
  public void actionperformed(actionevent e)
  { object source = e.getsource();
   try{
    if(source==t.btnsend)
     { out.println(t.gettalk());
      t.cleartalk();
    }else
    if(source==t.btnend)
     { out.println("谈话过程被对方终止");
      out.close();
      in.close();
      talking = false;
     }
   }catch(ioexception ex){
   }
  }
  public void run()
  { try{
    t=new talkserverfrm(new integer(threadnum).tostring(),this);
    t.setsize(500,500);
    t.show();
    in = new bufferedreader(new
        inputstreamreader(socket.getinputstream()));
    out = new printwriter(socket.getoutputstream(),true);
   }catch(exception e){
  }
   new thread()
   { public void run()
    { try{
      while(true)
      { checkinput();
       sleep(1000);
    }
   }catch (interruptedexception ex){
   }catch(ioexception ex){
   }
   }
   }.start();
   while(talking)
   { }
   t.dispose();
   }
  private void checkinput() throws ioexception
  { string line;
   if((line=in.readline())!=null)
    t.setpartner(line); file://这是界面类里的方法,
    file://用来将line的内容输出到用户界面
   }
  }

扫描关注微信公众号