一个基于TCP的聊天程序
来源:互联网 发布:adobe旗下的软件 编辑:程序博客网 时间:2024/04/30 11:46
这是个基于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();
}
}
只能用于本地局域网中,怎么在互联网上用还有待研究:)!
这个程序只能在本机上用,要在局域网上用还要改一下!
代码如下:
服务器:
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();
}
}
- 一个基于TCP的聊天程序
- 基于TCP 的多线程 聊天程序
- 基于TCP的网络聊天程序
- 基于DES加密的TCP聊天程序
- 基于TCP的python聊天程序(2)
- Java基于Tcp的socket聊天程序
- 基于TCP/UDP的网络聊天程序
- 一个超级简单的tcp聊天程序
- 网络编程应用:基于TCP协议【实现一个聊天程序】
- 基于TCP的聊天程序(了不起的nodejs chapter6)
- 基于TCP/IP的简单的聊天程序
- JavaSE基础小结--1---基于TCP的聊天程序
- 基于TCP与UDP的简单聊天程序
- 基于TCP协议的Java聊天小程序
- JAVA程序设计:基于TCP协议的聊天程序
- Linux Linux函数 Linux聊天程序 基于socket的TCP(有连接的)聊天程序
- Linux Linux函数 Linux聊天程序 基于socket的TCP(有连接的)聊天程序
- 一个用Java写的简单的TCP聊天程序
- J2SE5.0新特性之枚举类型
- JDK1.5 注释语法(Annotations)新鲜试用
- ASP方面的几个分页类
- Eclipse3.0.1+MyEclipse3.8.2及Tomcat5的中文问题解决
- 转换中文的方法
- 一个基于TCP的聊天程序
- 熟练掌握JDK1.5枚举类型
- 【收藏】极致繁华,不过一掬细沙
- tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,及中文乱码解决详解
- 20分钟熟悉猛虎脾气-JDK1.5新特性介绍
- 学生使用极限编程进行团队开发的方案
- J2SE 1.5 新功能特性:新的For循环
- J2SE 1.5 中的Formatter 类
- 漫谈Java数据库存取技术