一个基于TCP的聊天程序

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

这是个基于TCP的连接

只能用于本地局域网中,怎么在互联网上用还有待研究:)!

这个程序只能在本机上用,要在局域网上用还要改一下!

代码如下:

服务器:

import java.io.*;

import java.awt.*;

import java.awt.event.*;

import java.net.*;

public class ChatS extends Frame

{

TextField tf=new TextField(20);

TextArea ta=new TextArea();

ServerSocket server;

Socket client;

InputStream in;

BufferedReader br;

OutputStream out;

BufferedWriter bw;

public ChatS()

{

super("Server");

add("North",tf);

add("Center",ta);

setSize(250,250);

show();

try

{

server=new ServerSocket(5001);

client=server.accept();

ta.append("Client host:"+client.getInetAddress().getHostName()+"\n\n");

in=client.getInputStream();

out=client.getOutputStream();

}

catch(IOException ioe){}

while(true)

{

try

{

byte[] buf=new byte[200];

in.read(buf);

String str=new String(buf);

ta.append("Client say:"+str);

ta.append("\n");

}

catch(IOException e){}

}

}

public boolean action(Event e,Object o)

{

try

{

String str=tf.getText();

byte[] buf=str.getBytes();

tf.setText(null);

out.write(buf);

ta.append("I say:"+str);

ta.append("\n");

}

catch(IOException ioe){}

return true;

}

public static void main(String args[])

{

new ChatS();

}

}

客户端:

import java.io.*;

import java.awt.*;

import java.awt.event.*;

import java.net.*;

public class ChatC extends Frame

{

TextField tf=new TextField(20);

TextArea ta=new TextArea();

Socket client;

InputStream in;

BufferedReader br;

OutputStream out;

BufferedWriter bw;

public ChatC()

{

super("Client");

add("North",tf);

add("Center",ta);

setSize(250,250);

show();

try

{

client=new Socket("127.0.0.1",5001);

ta.append("Connect to:"+client.getInetAddress().getHostName()+"\n\n");

in=client.getInputStream();

br=new BufferedReader(new InputStreamReader(in));

out=client.getOutputStream();

bw=new BufferedWriter(new OutputStreamWriter(out));

}

catch(IOException ioe){}

while(true)

{

try

{

byte[] buf=new byte[200];

in.read(buf);

String str=new String(buf);

ta.append("Server say:"+str);

ta.append("\n");

}

catch(IOException e){}

}

}

public boolean action(Event e,Object o)

{

try

{

String str=tf.getText();

byte[] buf=str.getBytes();

tf.setText(null);

out.write(buf);

ta.append("I say:"+str);

ta.append("\n");

}

catch(IOException ioe){}

return true;

}

public static void main(String args[])

{

new ChatC();

}

}

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