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

利用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博客 ” ,链接:http://blog.itpub.net/374079/viewspace-132196/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-132196/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值