找回密码
 注册
搜索
查看: 6828|回复: 0

利用Socket进行Java网络编程(三)

[复制链接]
发表于 2003-10-2 20:36:38 | 显示全部楼层 |阅读模式
附:服务器的实现代码



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

 }

}


  
原作者: 郗旻
原出处: 天极网
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2025-6-19 03:49 , Processed in 0.015290 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表