Java 聊天室源码

cy_cgf 贡献于2012-06-18

作者 Administrator  创建于2010-04-29 08:34:00   修改者Wsl  修改于2010-04-29 08:34:00字数4164

文档摘要:Java 聊天室源码
关键词:

【ClientSocketDemo.java 客户端Java源代码】 import java.net.*; import java.io.*; public class ClientSocketDemo { //声明客户端Socket对象socket Socket socket = null; //声明客户器端数据输入输出流 DataInputStream in; DataOutputStream out; //声明字符串数组对象response,用于存储从服务器接收到的信息 String response[]; //执行过程中,没有参数时的构造方法,本地服务器在本地,取默认端口10745 public ClientSocketDemo() { try { //创建客户端socket,服务器地址取本地,端口号为10745 socket = new Socket("localhost",10745); //创建客户端数据输入输出流,用于对服务器端发送或接收数据 in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); //获取客户端地址及端口号 String ip = String.valueOf(socket.getLocalAddress()); String port = String.valueOf(socket.getLocalPort()); //向服务器发送数据 out.writeUTF("Hello Server.This connection is from client."); out.writeUTF(ip); out.writeUTF(port); //从服务器接收数据 response = new String[3]; for (int i = 0; i < response.length; i++) { response[i] = in.readUTF(); System.out.println(response[i]); } } catch(UnknownHostException e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} } //执行过程中,有一个参数时的构造方法,参数指定服务器地址,取默认端口10745 public ClientSocketDemo(String hostname) { try { //创建客户端socket,hostname参数指定服务器地址,端口号为10745 socket = new Socket(hostname,10745); in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); String ip = String.valueOf(socket.getLocalAddress()); String port = String.valueOf(socket.getLocalPort()); out.writeUTF("Hello Server.This connection is from client."); out.writeUTF(ip); out.writeUTF(port); response = new String[3]; for (int i = 0; i < response.length; i++) { response[i] = in.readUTF(); System.out.println(response[i]); } } catch(UnknownHostException e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} } //执行过程中,有两个个参数时的构造方法,第一个参数hostname指定服务器地址 //第一个参数serverPort指定服务器端口号 public ClientSocketDemo(String hostname,String serverPort) { try { socket = new Socket(hostname,Integer.parseInt(serverPort)); in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); String ip = String.valueOf(socket.getLocalAddress()); String port = String.valueOf(socket.getLocalPort()); out.writeUTF("Hello Server.This connection is from client."); out.writeUTF(ip); out.writeUTF(port); response = new String[3]; for (int i = 0; i < response.length; i++) { response[i] = in.readUTF(); System.out.println(response[i]); } } catch(UnknownHostException e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} } public static void main(String[] args) { String comd[] = args; if(comd.length == 0) { System.out.println("Use localhost(127.0.0.1) and default port"); ClientSocketDemo demo = new ClientSocketDemo(); } else if(comd.length == 1) { System.out.println("Use default port"); ClientSocketDemo demo = new ClientSocketDemo(args[0]); } else if(comd.length == 2) { System.out.println("Hostname and port are named by user"); ClientSocketDemo demo = new ClientSocketDemo(args[0],args[1]); } else System.out.println("ERROR"); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 【ServerSocketDemo.java 服务器端Java源代码】 import java.net.*; import java.io.*; public class ServerSocketDemo { //声明ServerSocket类对象 ServerSocket serverSocket; //声明并初始化服务器端监听端口号常量 public static final int PORT = 10745; //声明服务器端数据输入输出流 DataInputStream in; DataOutputStream out; //声明InetAddress类对象ip,用于获取服务器地址及端口号等信息 InetAddress ip = null; //声明字符串数组对象request,用于存储从客户端发送来的信息 String request[]; public ServerSocketDemo() { request = new String[3]; //初始化字符串数组 try { //获取本地服务器地址信息 ip = InetAddress.getLocalHost(); //以PORT为服务端口号,创建serverSocket对象以监听该端口上的连接 serverSocket = new ServerSocket(PORT); //创建Socket类的对象socket,用于保存连接到服务器的客户端socket对象 Socket socket = serverSocket.accept(); System.out.println("This is server:"+String.valueOf(ip)+PORT); //创建服务器端数据输入输出流,用于对客户端接收或发送数据 in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); //接收客户端发送来的数据信息,并显示 request[0] = in.readUTF(); request[1] = in.readUTF(); request[2] = in.readUTF(); System.out.println("Received messages form client is:"); System.out.println(request[0]); System.out.println(request[1]); System.out.println(request[2]); //向客户端发送数据 out.writeUTF("Hello client!"); out.writeUTF("Your ip is:"+request[1]); out.writeUTF("Your port is:"+request[2]); } catch(IOException e){e.printStackTrace();} } public static void main(String[] args) { ServerSocketDemo demo = new ServerSocketDemo(); } }

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档