ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [转载]利用Socket进行Java网络编程(三)

[转载]利用Socket进行Java网络编程(三)

原创 Linux操作系统 作者:dinner1007 时间:2019-06-24 08:03:06 0 删除 编辑
利用Socket进行Java网络编程(三)
附:服务器的实现代码

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的内容输出到用户界面
 }
}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/374079/viewspace-132196/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-08-23

  • 博文量
    1714
  • 访问量
    1477695