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

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

作者: 郗旻

附:服务器的实现代码

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

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航