java聊天室代码(JAVA多线程网络聊天室代码)

admin 305 0

大家好,今天小编来为大家解答以下的问题,关于java聊天室代码,JAVA多线程网络聊天室代码这个很多人还不知道,现在让我们一起来看看吧!

一、java 聊天室 源代码

【ClientSocketDemo.java客户端Java源代码】

//声明字符串数组对象response,用于存储从服务器接收到的信息

//执行过程中,没有参数时的构造方法,本地服务器在本地,取默认端口10745

//创建客户端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.");

for(int i= 0; i< response.length; i++)

System.out.println(response[i]);

catch(UnknownHostException e){e.printStackTrace();}

catch(IOException e){e.printStackTrace();}

//执行过程中,有一个参数时的构造方法,参数指定服务器地址,取默认端口10745

public ClientSocketDemo(String hostname)

//创建客户端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.");

for(int i= 0; i< response.length; i++)

System.out.println(response[i]);

catch(UnknownHostException e){e.printStackTrace();}

catch(IOException e){e.printStackTrace();}

//执行过程中,有两个个参数时的构造方法,第一个参数hostname指定服务器地址

//第一个参数serverPort指定服务器端口号

public ClientSocketDemo(String hostname,String serverPort)

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.");

for(int i= 0; i< response.length; i++)

System.out.println(response[i]);

catch(UnknownHostException e){e.printStackTrace();}

catch(IOException e){e.printStackTrace();}

public static void main(String[] args)

System.out.println("Use localhost(127.0.0.1) and default port");

ClientSocketDemo demo= new ClientSocketDemo();

System.out.println("Use default port");

ClientSocketDemo demo= new ClientSocketDemo(args[0]);

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源代码】

//声明并初始化服务器端监听端口号常量

public static final int PORT= 10745;

//声明InetAddress类对象ip,用于获取服务器地址及端口号等信息

//声明字符串数组对象request,用于存储从客户端发送来的信息

request= new String[3];//初始化字符串数组

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());

//接收客户端发送来的数据信息,并显示

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();

二、java实现聊天室是怎么做到的

1、Java实现聊天室可以采用网络编程中的Socket和ServerSocket技术来实现。具体实现步骤如下:

2、服务器端创建ServerSocket对象,并指定一个端口号来监听客户端的连接请求。

3、客户端创建Socket对象,并指定服务器端的IP地址和端口号来连接服务器。

4、服务器端通过ServerSocket.accept()方法等待客户端的连接请求,当有新的连接请求到达时,创建一个新的线程来处理该客户端的请求,并将该线程加入到线程池中。

5、客户端连接服务器后,通过Socket.getInputStream()方法获取输入流,并通过Socket.getOutputStream()方法获取输出流,向服务器发送消息或接收来自服务器的消息。

6、服务器端通过线程池中的线程来处理客户端的请求,服务器可以实现广播功能,将接收到的客户端消息转发给其他所有客户端,也可以实现点对点的私聊功能。

7、当客户端退出聊天室时,需要关闭相应的Socket连接,并通知其他客户端该客户端已经离开。

8、聊天室中的消息可以使用特定的格式进行编码和解码,以便服务器端和客户端可以正确地解析和处理消息。

9、需要注意的是,在实现聊天室时需要考虑线程安全、消息编解码、异常处理等问题,以确保聊天室的稳定和可靠性。同时,还需要进行充分的测试和优化,以提高聊天室的性能和用户体验。

三、速求用JAVA语言写聊天室的源代码

【ClientSocketDemo.java客户端Java源代码】

//声明字符串数组对象response,用于存储从服务器接收到的信息

//执行过程中,没有参数时的构造方法,本地服务器在本地,取默认端口10745

//创建客户端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.");

for(int i= 0; i< response.length; i++)

System.out.println(response[i]);

catch(UnknownHostException e){e.printStackTrace();}

catch(IOException e){e.printStackTrace();}

//执行过程中,有一个参数时的构造方法,参数指定服务器地址,取默认端口10745

public ClientSocketDemo(String hostname)

//创建客户端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.");

for(int i= 0; i< response.length; i++)

System.out.println(response[i]);

catch(UnknownHostException e){e.printStackTrace();}

catch(IOException e){e.printStackTrace();}

//执行过程中,有两个个参数时的构造方法,第一个参数hostname指定服务器地址

//第一个参数serverPort指定服务器端口号

public ClientSocketDemo(String hostname,String serverPort)

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.");

for(int i= 0; i< response.length; i++)

System.out.println(response[i]);

catch(UnknownHostException e){e.printStackTrace();}

catch(IOException e){e.printStackTrace();}

public static void main(String[] args)

System.out.println("Use localhost(127.0.0.1) and default port");

ClientSocketDemo demo= new ClientSocketDemo();

System.out.println("Use default port");

ClientSocketDemo demo= new ClientSocketDemo(args[0]);

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源代码】

//声明并初始化服务器端监听端口号常量

public static final int PORT= 10745;

//声明InetAddress类对象ip,用于获取服务器地址及端口号等信息

//声明字符串数组对象request,用于存储从客户端发送来的信息

request= new String[3];//初始化字符串数组

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());

//接收客户端发送来的数据信息,并显示

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();

好了,关于java聊天室代码和JAVA多线程网络聊天室代码的问题到这里结束啦,希望可以解决您的问题哈!