当前位置: 首页 > 图文教程 > Java技术 > Java Web开发 > 浅谈Java网络编程之Socket (2)

Java Web开发
JSP的技术方法
错误处理页面的制作404,和500
JSP动态生成并调用JSP程序
jsp防注入的代码,如何防止SQL注入的方法和预编译的PreparedStatement的代码例子
一段生成验证码图片的程序
include与jsp:include区别
jsp基础速成精华讲解
Ajax servlet实现
如何从JSP页面传送动态图片
Java中用Servlet Listener实现定时监听
JSP、Servlet中的相对路径和绝对路径
如何成为一个优秀的jsp程序员
Java开源软件六大帮派
JSP高访问量下的计数程序 (转载)
Servlet中的这些问题,你注意到了吗?
JSP解决中文乱码问题
Servlet常见错误校验表
Session和Cookie的深入研究
无限菜单之 xml+popup 版(IE5.5+)
关于hibernate多对多----many to many

Java Web开发 中的 浅谈Java网络编程之Socket (2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-03-20   浏览: 206 ::
收藏到网摘: n/a

在《浅谈Java网络编程之Socket (1)》中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码。

 

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

 }

}